今天要接著完成部署 GAS 專案並且讓 Line Bot 可以簡單的回應驗證碼給使用者。
首先我們要把之前做好的 GAS 專案(Read Mail
)部署為資料庫,這樣就可以像使用 GmailApp 一樣在其他專案使用這個 GAS 專案。
Reply Message
負責接收 Webhook Message Event (之後會解釋這是什麼),Event Object 中可以拿到三個資訊
replyToken
: 用來回應使用者訊息的單次使用Token,很快就會失效userId
: 使用者的 line user tokenmessage
: 使用者發送的訊息內容格式等資訊Reply Message
會檢驗 message
中使用者是否發送了 "獲取驗證碼" 的文字訊息
Reply Message
提供 userId
給 Read Mail
專案Read Mail
讀取驗證碼,並將 userId 等紀錄寫進 Google Sheet 中,再回應驗證碼給 Reply Message
Reply Message
利用 replyToken
回應使用者驗證碼為了符合以上的構思,需要把 Read Mail
專案稍作修改
首先把 insertToSheet
改成如下:
function insertToSheet(sheet, content, userID) {
Logger.log('start to insertToSheet');
var lastRow = sheet.getLastRow();
var range = sheet.getRange(++lastRow, 1, 1, 3);
range.setValues([[content, userID, new Date()]]);
}
接著把 app.gs
改成如下:
function app(userId) {
var content = readMail();
var sheet = connectToSheet();
insertToSheet(sheet, content);
var validationCode = readFromSheet(sheet);
return validationCode;
}
更新完記得存檔唷!
Read Mail
專案部署為資料庫首先點選 GAS 介面右上角的部署
接著在左邊選取類型的齒輪點一下,選擇資料庫
說明的地方輸入 Read Mail,然後按下部署
然後就可以看到部署的結果囉~圖中的資料庫網址可以看到資料庫的簡易使用說明頁面
接著我們建立一個新的 Reply Message
專案如下:
Read Mail
作為資料庫然後點選左邊資料庫的+號,新增一個資料庫
這裡要輸入的指令碼 ID 可以在 Read Mail
專案的專案設定中找到
輸入指令碼 ID 後按下查詢,成功的話就會顯示如下圖
版本的部分可以選擇最新,也可以選擇你想要的部署版本
成功載入資料庫囉!
Read Mail
接著我們將 Reply Message
的 app.gs 修改如下:
function app() {
var validationCode = ReadMailAndInsertToGoogleSheet.app('testUser');
Logger.log(validationCode);
}
修改完後記得儲存!接著按下執行~第一次執行一樣會要求審查權限,然後來看看成果吧~
如果想瞭解更多關於 GAS 資料庫的用法可參考文件 Libraries
今天就先到這裡~畢竟等下要來為99購物節備戰(?!)
明天終於要進入 Line Messaging Api 的應用~會接受 Webhook Message Event,並且透過 replyTokne 回應使用者驗證碼。
其實用 GAS 示範簡單串連 Line Bot 是可以非常快速的,網路上也有很多相關的教學文章,但因為本系列文章的其中一個目的是盡量比昨天多進步一點,如果都是以前使用過的東西就太無趣了~像這次將 GAS 部署為資料庫,對筆者來說就是新東西(之前都只有部署成 Web App doPost())。也是這次寫文章才發現 GAS 現在有了新版的編輯器介面,也支援了更多服務,時代果然是一直在進步呀~想停留在原地你得不停的奔跑!
想請問版主,
目前我已經將這篇的code打上GAS
也將網頁應用程式的網址貼上line message API的 webhook
不過用line點擊”獲取驗證碼“圖片, 也會吐出”獲取驗證碼“,
但是line bot並沒有回傳驗證碼, 請問我要怎麼測試function有沒有錯誤呢
謝謝
不好意思
回應錯篇文章,
我想回應的是這篇“部署 Google App Script 專案(2) & Line Bot 簡單回應訊息”的內容
謝謝