用GCP 弄一個Messenger Bot
因為Google 有免費的 serverless 服務可以使用,同時目前又需要進行一些測試,所以就乾脆一起來一邊做文件,一邊把功能設定出來.
要完成這個工作主要是需要:
- Facebook 粉絲頁
- Facebook application
- Google Cloud Platform (使用Cloud Functions)
第一步 — 開立粉絲頁面
首先開立一個粉絲團,點擊粉絲專頁.
點擊社群或者是公眾人物
填入自己喜歡的名字
完成後,記得到藍色那裡點選編輯按鈕,改成發送訊息.
點選向你聯絡後,點發送訊息,並按下一步完成它
點選 Messenger 後按下完成
第二步 — 設定Google Cloud Functions
進入 GCP 之後,點選 Google Cloud Functions,點選 create function
調整函數名稱為 webhook,Memory allocated 看要不要調整,而且Runtime環境也可以從 Node.js 6 改成 Python 3.7
調整程式碼,可以直接 copy & paste,其中 Token 可以等一下去FB application 後台獲得後,在更新調整.
Python version
Node.JS version
記得修改 Function to execute 的名稱
儲存之後,就可以在 Trigger 拿裡拿到 endpoint URL
第三步 — 設定Facebook Application
首先連線到 Facebook for developer,新增一個應用程式,點我的應用程式後,按下新增應用程式
接下來輸入一個自己開心的名稱吧
接著我們要設定 Messenger ,首先點選Messenger
接著設定 webhooks,首先點選選擇粉絲專頁,專業2的 bot 之後,就會看見存取權杖,這個拿到之後就可以去更改 GCP上面的 [TOKEN].
緊接著點選設定 Webhooks
將剛剛的Google Cloud Functions 提供的 endpoints URL 放進回呼網址,並在驗證權杖打入 test,其中訂閱欄位可以依照自己需求去訂,其中 messages 是最基本必要,完成之後就可以驗證並儲存.
如果一切正常,就可以看見下面的訊息,只要再把粉絲頁改成剛剛新創的粉絲專頁就可以了.
最後一步 — 驗證
最後回到粉絲頁,點選發送訊息->驗證按鈕,就可以看見彈跳出對話框,如果按照之前的程式碼放入,那麼在這裡打的任何一句話,應該都會看見後面被加上 aha,那麼恭喜你的手工 chatbot on Google Cloud Functions 就完成了.
後話
因為目前只為了簡單方便,所以才會採用其實回應速度也有點頓頓的 Google Cloud Functions,不過畢竟在一個量下免費,然後需求也不複雜的情況下,其實這樣的做法可以快速有效的實作出許多 prototype 出來.或許 heroku 是另外一個可以去嘗試的地方,但就改天再進行吧.