架設過程中會使用到以下服務,過程中無須安裝任何軟體,只需要有網路就可以實作。
本架設教學 不會獲取任何個資、騙取財產及其他網路危害
,如仍有疑慮,請立即停止相關操作。
- Line Messaging API
- Google Apps Script
- Google Sheet API
- RANDOM.org API
- Google Cloud Platform (除錯才會使用到)
-
打開 https://developers.line.biz/en/services/messaging-api/ ,點選
Start now
-
登入自己的 Line 帳號後,會看到以下畫面
Channel type
選擇Messaging API
Provider
選擇自己的帳號Channel name
機器人要叫什麼名字Channel description
對於這個機器人的描述Category
分類隨意選,我是選生活相關服務
Subcategory
子分類隨意,我是選生活相關服務(其他)
必填的都填完之後,最下面的條款勾一勾,就可以建立機器人了。
-
成功建立出機器人之後,切到
Messaging API
的分頁,往下滑動到LINE Official Account features
的標題,點選紅圈的地方 -
瀏覽器會自動打開
LINE Official Account Manager
的網頁,原本的網頁不要關哦,後續還會用到 -
往下滑動到
功能切換
的地方,按照以下圖片設定 -
左邊選單點選
回應設定
,按照以下圖片設定 -
接下來,再回到一開始申請機器人的網頁,一樣是在
Messaging API
的分頁,往下拉到最下面Channel access token
的地方,點選Issue
的按鈕,會產出像亂碼的一長串文字,這串文字非常重要,不能透露給別人,也不要隨便按下Reissue
的按鈕 -
在相同的頁面往上拉,會看到一個 QR code,用 Line 掃描這個 QR code 就可以加入這個機器人到你的好友跟群組裡面了
-
恭喜你,你的 Line 機器人設定已經完成 99% 了。
這個階段,我們會用自己的 Google Drive 建立一個 Google Sheet ,也就是大家常說的 Excel (工作表) 這個 Sheet 是要用來記錄要抽什麼、誰登記要抽什麼,也就是當作一個小型資料庫使用
-
打開 Google Drive
-
新增 -> Google 試算表
你可以為試算表命名,避免之後清理 Google Drive 的時候誤刪
-
新增一個工作表,叫
Log
(不是檔案名稱,是下方的工作表)工作表名稱
大小寫必須一致
這個工作表可以用來記錄一些 Debug 用的資訊,後續會在這邊取得 Line 群組的 ID
-
A1 欄位填上
Timestamp
-
B1 欄位填上
Log
-
這邊有一個東西非常重要,叫做
SheetID
,他就在網址列上面,後續會使用到https://docs.google.com/spreadsheets/d/{SHEET_ID}/edit#gid=0
舉例: https://docs.google.com/spreadsheets/d/1234567890-====qwertyuioasdfghjklzxcvbnm/edit#gid=0
1234567890-====qwertyuioasdfghjklzxcvbnm
就是SheetID
-
開啟共用 -> 知道連結的人都可以進行編輯
這個連結也不要隨便給別人,不然他可以直接修改裡面的資料
如果
沒有開啟編輯
,機器人會無法寫入資料到 Sheet 裡面 -
再度恭喜你,到這邊大致上已經完成建立 Google Sheet 的流程了。
這個階段要開始實作最主要的功能了,一樣會使用自己的 Google Drive 來建立 Google Apps Script
-
打開 Google Drive
-
新增 -> 更多 -> Google Apps Script
-
新增完成後,就會看到這個以下頁面
當然也可以為這個檔案進行命名,避免未來的自己誤刪
-
再來就是把
src
資料夾底下的程式碼複製過去如何修改檔名 (可以不用打
.gs
)如何新增檔案 (此專案是選擇
指令碼
) -
都複製過去後,打開 https://www.random.org/ 申請取得亂數需要用到的 API Key
-
回到 Google Apps Script 的編輯畫面,切換到
Config.gs
的檔案貼上的時候單引號要記得留著
ex: 'ABCDEFG'
CHANNEL_ACCESS_TOKEN
填上先前按下Issue
按鈕產生的那串文字TARGET_GROUP_ID
要等到 Apps Sciprt 部署後才能拿到,之後再回頭來填SHEET_ID
填上建立 Google 試算表時提及的SheetID
RANDOM_API_KEY
填上在 RANDOM.org 申請好的 API Key
-
開始部署我們的 Apps Scripts,先儲存,再點選右上角的
部署
->新增部署作業
,選取類型旁邊有個齒輪,點開來,勾選網頁應用程式
專案一定要
先儲存
再部署只有
第一次
部署時才需要新增部署作業,後需的程式碼更動都使用管理部署作業
-
按下
部署
後,會跳出以下頁面,點選授予存取權
-> 選取自己的帳號 -> 進階 -> 點選前往「XXX」(不安全)
為什麼會說這個不安全呢?因為現階段還是處於測試階段,所以 Google 會認為他不安全
別擔心,這個完全不會有個資或其他安全疑慮,請安心服用。
如有疑慮,請立即停止操作
-
完成部署後,複製網頁應用程式的網址並貼到 Line Messaging API 的頁面,點選
Update
,Use webhook
的開關打開 -
接著把機器人加到 Line 群組裡面,隨便輸入一句話讓機器人已讀,藉此來取得這個群組的 Group ID
-
以上步驟如果都正確的話,就會在 Log 的工作表看到 Log 了,裡面就可以找到
groupId
,並把他填到Configs.gs
裡面的TARGET_GROUP_ID
Log 很長不方便查看,可以使用 https://jsoneditoronline.org/beta/ 這個網站來幫著你看
-
把下圖的 Log 複製起來,貼到 https://jsoneditoronline.org/beta/
-
貼上後,把左上角的
</>
符號按掉並且展開,就可以找到Group ID
了 (紅圈處)
-
-
完成之後,再去
Main.gs
把第 21 行刪掉也可以不刪,但是任何人在群組所說的話都會變成 Log 儲存在試算表,請自行斟酌
-
儲存專案,點選右上
部署
->管理部署作業
-> 點選右上的筆 (編輯) -> 版本 -> 建立新版本 ->部署
-
非常非常恭喜你,你已經可以使用相關指令跟抽獎機器人互動了
-
當遇到機器人沒反應時,請檢查以下步驟
- 確認 Google Sheet 的連結沒有改成
知道連結者可以編輯
- 確認
Sheet ID
是否正確 - 確認 Google Sheet
Log
工作表名稱大小寫一致 - 部署前一定要
先儲存
專案 - 管理部署作業的時候,有建立新版本嗎?
- 確認 Google Sheet 的連結沒有改成
-
當機器人原本可以使用,突然不能用了,怎麼辦?
- 部署機器人的授權可能過期了,請在管理部署作業建立新版本
此步驟是發生在不知道為什麼機器人都無法作動的情況下才需要實作的
-
新增一個專案,專案名稱隨意
-
建立完成後,選取該專案
-
點選左上的選單 ->
API 和服務
->OAuth 同意畫面
-
選擇
外部
-
把必填的填一填, Email 的地方都填自己的,填完後,最下面點選
儲存並繼續
-
繼續點選
儲存並繼續
-
測試使用者加入自己的 Email,填完後,點選
儲存並繼續
-
完成後,點選左上的選單 -> 首頁 -> 資訊主頁,複製專案編號
-
打開先前發布的 Apps Script
-
左邊選單
專案設定
-> 拉到最下面 -> 點選變更專案
-> 填上剛剛複製的專案編號 -
重新部署專案,會需要重新授權一次
-
回到 GCP 網頁,上方搜尋
logging
-
點開
紀錄檔欄位
,選Apps Script Function
,再去跟機器人互動,執行查詢一直刷新,過幾秒後,就會看到顯示在 Google 試算表的 Log 也顯示在上面了如果要顯示自訂義的 Log 請到程式碼需要加上 Log 的地方加上
conoloe.log('你需要的資訊');
即可