用GCP 弄一個Messenger Bot

aha (Cheng-Yu Lin)
4 min readNov 26, 2018

因為Google 有免費的 serverless 服務可以使用,同時目前又需要進行一些測試,所以就乾脆一起來一邊做文件,一邊把功能設定出來.

要完成這個工作主要是需要:

  1. Facebook 粉絲頁
  2. Facebook application
  3. 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 是另外一個可以去嘗試的地方,但就改天再進行吧.

--

--

aha (Cheng-Yu Lin)

Passionate about reading, gaming, and travel. Using AI to connect the physical & virtual worlds, I enjoy sharing ideas with others. Let's connect!