【實戰手記】從零到一:如何用 GAS 養出一隻會回話的 LINE 自動化龍蝦(第一步)?

為什麼你該擁有一隻「數位龍蝦」?
選擇GAS養龍蝦,讓自動化變得更有趣!

為什麼選擇在 Google Apps Script (GAS) 養龍蝦?因為它完全免費免安裝軟體,且能無縫接軌 Google 試算表。這隻龍蝦不只是個聊天機器人,它未來的潛力無窮——它可以幫你記錄開支、整理行程,甚至對接 AI 變身成你的全能數位管家

龍蝦活過來的瞬間
見證奇蹟:手機傳訊息,龍蝦秒回覆!

在我們進入繁瑣的設定之前,先來看看完成後的樣子。當你在 LINE 對話框輸入「哈囉」,你的龍蝦不再只是靜靜地待在試算表裡,它會立刻透過 LINE Messaging API 回覆你:

這代表你的「Webhook 連線」已經成功穿透雲端,實現了跨平台的溝通!也完成了學習程式語言的第一步「Hello Work

手把手龍蝦養成教學
第一步:取得通訊證 (LINE Developers)

龍蝦要合法回話,需要一張「通行證」。

1.到Line官方帳號申請,建立一個Line官方帳號,必要的項目填寫即可。

2.登入Line Offical Account Manager管理介面,選擇建立的官方帳號

第一次登入時會需要同意Line使用資訊,請按「同意」

同意「LINE官方帳號使用條款更新啟事」

3.啟用Messaging API,選擇服務提供者,可自行建立新的或選一個你想分類的。

隱私權政策及服務條款,這部份可選填

啟用成功後的Messaging API畫面

4.開啟LINE Developers Console設定

選擇剛設定的「服務提供者」,再選要設定的官方帳號

5.取得Channel access token

點選Messageing API,並向下滑動看到「Channel access token」,點擊「Issus」取得Channel access token。

  • 此序號記得不要公開。
  • 會需要填到後面的「CHANNEL_ACCESS_TOKEN」處。

暫時先離開Line的設定回到Google Apps Script

第二步:打造龍蝦的大腦 (Google Apps Script)

首先,我們要建立一個接收訊息的「收件箱」。

1.開啟龍蝦大腦:打開一個新的 Google 試算表,點選「延伸功能」 > 「Apps Script」 。

  • 名稱部份建議可以統一取一樣的方便管理,例如「龍蝦入門

2.植入代碼:刪除原本內容,貼上處理 doPost(e) 的函式(這是專門接收 LINE 訊息的入口) 。

  • CHANNEL_ACCESS_TOKEN處一定要填上剛獲得的Channel access token資料,需要保留左右的「」符號!且不可以有多的空格
  • 程式貼完記得要按「存檔」
  • 目前程式僅有做LINE訊息連線控制用,沒有使用其他的技能
var CHANNEL_ACCESS_TOKEN = '這裡貼上TOKEN';

function doPost(e) {
  var sheet = SpreadsheetApp.getActiveSheet();
  
  // 1. 測試:先在試算表寫下一行字,證明訊號有進來
  sheet.appendRow(["[訊號] 龍蝦收到訊息了", new Date()]);
  
  try {
    var contents = JSON.parse(e.postData.contents);
    var replyToken = contents.events[0].replyToken;
    var userText = contents.events[0].message.text;
    
    var url = 'https://api.line.me/v2/bot/message/reply';
    var options = {
      'headers': {
        'Content-Type': 'application/json; charset=UTF-8',
        'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
      },
      'method': 'post',
      'payload': JSON.stringify({
        'replyToken': replyToken,
        'messages': [{ 'type': 'text', 'text': '龍蝦收到你說內容是:' + userText }]
      }),
      'muteHttpExceptions': true
    };
    
    var response = UrlFetchApp.fetch(url, options);
    // 2. 把 LINE 的回覆寫在試算表,直接看結果
    sheet.appendRow(["[結果] LINE 回報", response.getContentText()]);

  } catch (err) {
    sheet.appendRow(["[報錯] 程式碼出錯", err.toString()]);
  }
}

3.關鍵部署:點擊右上角「部署」 > 「新增部署」,類型選「網頁應用程式」。

  • 執行身分:選「我」。
  • 誰可以存取:務必選**「所有人 (Anyone)」**,不然 LINE 的訊息會被擋在門外!
第二步:授予存取權

要讓龍蝦能夠正常運作就需要獲得授權,可依畫面操作方式進行授權動作,完成授權後即可獲得LINE上使用的Webhook網址。

授權項目務必一定要選取全部,不然到時會無法正常運作

取得Webhook url網址,後續會貼回到Line Developers 的Webhook URL處。

第三步:開啟互通的通道

回到Line Developers設定Webhook URL,給予龍蝦回話的「通行證」。

1.設定 Webhook:將 GAS 部署後得到的 URL 貼進 LINE 的 Webhook URL 欄位,並按下 UpdateVerify ,確認Verify回覆「Success」訊息。

2.開啟「Use webhook」

3.回到Line Offical Account Manager頁面,設定「回應設定」

將「加入好友的歡迎訊息」及「自動回應訊息」關閉,只保留「Webhook」的選項

第三步:避坑指南!除錯二大魔鬼細節
  1. 「重新部署」的陷阱:每次修改 GAS 程式碼(例如改了 Token 或回覆文字),都必須點擊「管理部署」 > 「編輯(鉛筆)」 > 「版本:新版本」 重新部署。只按存檔是沒用的! 。
  2. 權限授權:第一次執行時,務必在 GAS 編輯器手動按一次「執行」,並一路點選「進階」 > 「前往(不安全)」 > 「允許」,給予龍蝦連網的權限 。
總結

這範例的過程其實是在練習與伺服器溝通。當你看到 doPost 執行成功且手機收到回訊的那一刻,你就已經掌握了 Webhook 的核心邏輯!接下來,你可以想想看,你希望教這隻龍蝦什麼新技能呢?是串接 ChatGPT 變聰明,還是讓它幫你自動記帳?開啟你的下一步吧!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *