今天的Google教學主題是如何透過Google Apps Script來申請LineBot、查詢其所在的群組ID,並且最終能將訊息傳送到指定的Line群組。這對於需要自動化發送通知到特定群組的使用者來說非常實用。
背景:為何需要查詢群組ID?
個人Line ID 的變動性: 同一個使用者在不同的Line群組中,他的 User ID 是不一樣的。 群組ID 的唯一性: 每個Line群組都有一個獨一無二的 Group ID。 機器人與群組的對應: 必須使用加入該群組的特定Line機器人,才能查詢到該機器人對於該群組的專屬 Group ID。
該機器人的 Channel Access Token 該機器人在目標群組中所對應的 群組 ID (Group ID)
如果是要傳送訊息給個人,只需要個人的 User ID 即可,可以透過Line官網或其他方式取得。 如果是同一個人建立的多個群組,對這個建立者來說,他在這些群組裡的 User ID 是一樣的。但群組本身的 Group ID 仍然是不同的。
Line Bot 訊息傳送限制與額度
權限: 只有被加入該群組的Line機器人,才能使用該群組的ID來傳送訊息。 免費額度: Line Bot的免費方案有訊息傳送數量限制。根據影片資訊(2023/03),當時每月免費額度約為200則。訊息量的計算方式是「傳送次數 x 群組人數」。例如,群組有5人,傳送一次就算5則訊息。剩餘額度可以在Line Official Account Manager後台查詢。(請注意:免費額度與政策請以Line官方最新公告為準) 機器人數量: 一個Line群組只能加入一個LineBot機器人。
操作步驟
A. 僅需傳送訊息給「個人」
申請LineBot機器人 (取得 Channel ID 和 Channel Secret)。 取得該機器人的 Channel Access Token (訊息發送憑證)。 取得目標使用者的個人 Line ID (User ID)。 即可使用相關工具或程式碼發送訊息。
B. 查詢「群組ID」並傳送訊息 (使用Google Apps Script)
申請 Line Bot: 你需要先到 LINE Developers Console 建立一個 Messaging API Channel (即 Line Bot)。記下 Channel ID 和 Channel secret。 取得 Channel Access Token: 在你的 Bot 設定頁面中,找到 "Messaging API" 標籤,往下找到 "Channel access token (long-lived)",點擊 Issue 按鈕產生一組長效型的 Token,這就是之後發送訊息需要的憑證。請妥善保管。 允許加入群組: 前往 LINE Official Account Manager,登入並選擇你的機器人。 點選左側選單「帳號設定」>「功能切換」。 將「加入群組或多人聊天室」選項設定為「接受邀請加入」。
關閉自動回應 (重要): 點選左側選單「回應設定」。 在「基本設定」中,確認「回應模式」為「聊天」(Bot模式)。 在「詳細設定」中,將「自動回應訊息」功能 停用 (關閉)。這樣才能確保由我們的Apps Script完全接管回應。
複製範本試算表: 點擊以下連結,複製一份Google試算表範本到你自己的Google雲端硬碟。 瀏覽器會提示你建立副本,請點選「建立副本」。
填入 Token: 在你複製的試算表副本中,將步驟1取得的 Channel Access Token 完整貼到 B3 儲存格 (Line_Token 欄位)。B4 (LineID或群組ID) 先保持空白。
開啟指令碼編輯器: 在試算表點選「擴充功能」>「Apps Script」。 部署為網頁應用程式: 在 Apps Script 編輯器中,點選右上角的「部署」按鈕 >「新增部署」。 在「選取類型」旁點擊齒輪圖示,選擇「網頁應用程式」。 描述: (選填) 可自行輸入描述,例如 "Line Bot ID查詢"。 執行身分: 選擇「我 (你的Google帳號)」。 誰可以存取: 選擇「所有人」(這點很重要,Line平台才能呼叫)。 點選「部署」。
授權指令碼: 首次部署會要求授權。點選「授權存取」。 選擇你的 Google 帳戶。 可能會出現「Google 尚未驗證這個應用程式」的警告畫面。請點選「進階」。 接著點選「前往『LineBot查詢群組ID跟送訊息』(不安全)」。 檢視要求的權限 (存取外部服務、試算表),確認無誤後點選「允許」。
複製網址: 授權成功後,畫面會顯示「網頁應用程式」的網址。請複製這段網址,稍後會用到。點選「完成」。
回到 LINE Developers Console 中你的 Bot 設定頁面。 找到 "Messaging API" 標籤。 找到 "Webhook settings" 區塊。 將上一步複製的 Apps Script 網頁應用程式網址 貼到「Webhook URL」欄位中。 點擊「Use webhook」旁邊的開關,將其 啟用 (變成綠色)。 點擊「Verify」按鈕測試連線是否成功 (應顯示 Success)。
使用你的 Line App,將這個設定好的 Line Bot 加入你想要查詢 ID 的目標群組。你可以透過掃描 Bot 的 QR Code (在 Messaging API 設定頁面可找到) 或使用其 Basic ID (@ 開頭那組) 來邀請。 確認 Bot 已成功加入群組後,在該 群組聊天室 中發送訊息 ID (大小寫不拘)。 如果一切設定正確,Bot 應會回傳類似以下的訊息: 記下這串 群組 ID (C 開頭的)。
回到你複製的 Google 試算表。 將上一步查到的 群組 ID (C 開頭那串) 貼到 B4 儲存格 (LineID或群組ID 欄位)。 在 B1 儲存格 (作業) 輸入你想傳送的訊息內容,例如:「大家好」。 點擊試算表中的「傳送訊息」按鈕 (它會觸發 Apps Script)。 檢查你的 Line 群組,應該就會收到來自 Bot 的「大家好」訊息了!
如果你只是想查詢一次群組 ID,查詢完畢後,可以回到 Line Developer Console 的 Messaging API 設定頁面,將 Webhook URL 清除,並關閉「Use webhook」開關,以免 Bot 持續回應 "ID" 查詢或產生非預期的行為。
如何除錯?
回到 Google 試算表的 Apps Script 編輯器。 點選左側選單的「執行項目」(時鐘圖示)。 這裡會列出指令碼的執行記錄。你可以點開來看詳細的執行狀況和錯誤訊息 (如果有的話),這有助於判斷問題所在。例如,權限問題、Token 錯誤、Webhook URL 設定錯誤等。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。