實作紀錄 | Google Apps Script + Line bot 實作 & 過程覆盤

閱讀時間約 3 分鐘


在 IG 上看到一位前端大大用 Google Apps Script + Line bot 替自己的球隊安排了球經,覺得很有趣,想想自己家每週日晚上都有固定的家庭聚餐,而我就是那位負責預定+告知+提醒+不斷被詢問這週吃什麼的角色...


想想既然轉職成為工程師了,必須讓這過程被優化+自動化,所以決定來玩玩看😛


一開始的預想是 Apps Script + Line Notify,簡單做一個定時推播訊息的機器人,所以參考了這篇教學👉🏻【Line Notify】透過 Google Script 結合 Line Notify 做到 Line 群組推播預先排程內容


raw-image


很順利就完成部屬和測試訊息的推播,但是又覺得只有推播訊息太簡便了,還想加入我們家常去吃的餐廳查詢功能,讓我可以直接透過 line 連結訂位,或是沒想法、無法決定要吃什麼的時候,可以隨機推薦一間餐廳...這些小功能,所以拿 Line Notify 這份程式碼進行修改 + 串接 Line bot API,變成一個資料庫查詢+回覆的機器人!

一樣參考了其他大大分享關於創建 Line bot 和串接 App Script 的教學文章

👉🏻在 LINE Developers 上建立 LINE Bot

👉🏻【LINE BOT 翻譯機器人】(4) 用 Google Apps Script API 傳送 LINE 訊息


raw-image


有成功建立帳號、得到 Line bot 的回應訊息,但是我要串接 Line 的回覆模板時,卻始終沒有辦法得到回覆,試了很久才發現這段不知道我從哪裡複製過來的 code

var dataExportFormat = JSON.stringify(resturant);
return ContentService.createTextOutput(dataExportFormat).setMimeType(ContentService.MimeType.JSON);

我一直認為它是必要的 return 結果,仔細看了 Line bot 文件之後,才發現 API 需要的資料格式很簡單,就是文件範例中給的 JSON 那樣而已,把這段拿掉,直接 return 相應的 obj,果然就成功回覆了!


成功收到 Line bot 的回覆後,就開始把資料建立到 Google sheet 裡面,並改寫 App Script 的 function,期望輸入餐廳名稱可以回傳餐廳的資訊。


但是改寫 function 後就一直不回覆了,一行一行測試才發現是我用了箭頭函式!要注意 App Script 必須使用 ES5 語法,難怪前面怎樣都跑不出結果😰。


寫法修正後就可以輸入關鍵字並得到餐廳資訊,這時又發現有些餐廳的資料可以成功回傳,有些則失敗,看來不是 function 的問題,就回頭去檢查資料,原來是 Google sheet 內的資料型別和格式有誤,會導致 Line bot 完全沒回應,像是電話號碼不能有空格、超連結的 URL 要正確...,細節還是很重要的啊!

raw-image


最後有成功完成以下功能

  1. 輸入餐廳名稱:回覆餐廳資訊
  2. 輸入【全部】:會列出餐廳清單(但是 Line 回覆最多只能10筆資料)
  3. 輸入【查訂位】:會回覆我家最新一筆訂位資訊
  4. 輸入【隨機】:隨機推薦一間餐廳給我


之後還想再加入的功能有:

輸入捷運站名稱,會回覆附近的餐廳名單有哪些

直接輸入訂位資訊,讓機器人幫我把訂位資訊推送到資料庫內



那麼 Line bot 實作&覆盤就先到這邊啦,我是Amber,前端學習中,歡迎交流討論🧸


其他參考文章

兩小時打造簡單 Line Chatbot — 使用 Google Apps Script & Google Sheet API

【LineBot實作】機器人傳送的訊息種類大彙整

Apps Script 到底是什麼



    20會員
    19內容數
    留言0
    查看全部
    發表第一個留言支持創作者!
    你可能也想看
    自評|個人品牌工作坊實作紀錄我猜,問題是在我要成為什麼樣的個人品牌吧? 這是一篇參與 vocus個人品牌工作坊後記錄的自我剖析 2019年3月,一個很照顧我的、研究所同學的母親突然過世。當時我開了臉書粉專,記錄下在土耳其遇到的事情,心裡只有一個想法:『我要讓更多人知道這些人、事、物都存在過。』
    Thumbnail
    avatar
    說土語的臺灣菸酒生
    2023-04-24
    安夫人真心實作紀錄篇 我們都會有困頓的時候,在困頓中伸出求援的手不容易,但願意伸出求援是值得嘉許,想想,在決定的一瞬間,就節省了原本可能花費數倍的時間,並且獲得拯救,多麼值得啊!不是嗎?!
    Thumbnail
    avatar
    安曇貴解心憂
    2020-11-11