概論: 此功能實現方式,將粉絲專頁的訊息都透過WebHooks 連到自己建置的伺服器上,自己的伺服器依據送過來的訊息,依照寫好的規則,透過API 回覆給使用者。
在此,我們用FB提供的範例,也就是用 NodeJS 寫的伺服器 達成 自動回覆公能
如果你對 NodeJS 不熟或完全沒概念,以下我都有詳盡解釋,歡迎留言
1. 到Facebook API 建立一個新的App (https://developers.facebook.com/) 左上角新增
2. 之後要求新增 Messenger
3. 開始建立 Webhooks 要連到的伺服器位址
4. Setup Webhooks 會長這樣,此時要先去架好NodeJS 伺服器
5. 由於安全性問題,網址FB要求一定要 HTTPS,如果自己有架伺服器經驗,這一部分可以申請個 CloudFlare 的SSL ,如果沒有架站過,在此推薦 cloud9 ,牠可以用虛擬機快速建立伺服器,並支援HTTPS,以下接用Cloud9去實做
6. 申請好帳號新增Workspace
git clone 填 https://github.com/fbsamples/messenger-platform-samples.git (FB的範例)
6. 建立好後 檔案目錄如下
7.下方有Terminal可以輸入指令 此時輸入下面指令
(1) cd ~/workspace/node/
(2) npm install
此時會多一個node_module資料夾
8. 此時到node/config 的default.json設定全域變數
appSecret到這裡看
pageAccessToken 再這裡產生(需要有粉絲專頁,沒有的話去建立一個吧)
validationToken 隨意輸入,之後要填再第四點的 驗證權杖欄位
8.好了之後就可以輸入 node app.js 開啟伺服器了
9.此時到 https://專案名稱-帳號名稱.c9users.io/ 可以正常看到訊息就是成功開啟了
10.此時回到第四點
回呼網址輸入剛剛的 https://專案名稱-帳號名稱.c9users.io/webhook驗證權杖輸入剛剛的 validationToken ~運作方式解說~在app.js 裡面可以找到以下程式碼,牠會處理剛剛給FB的回乎網址送來的訊息並且看FB傳來的驗證權杖對不對如果跟剛剛設定的default.json一樣就回傳status 200 也就是成功訊息給FB |
11.此時建立好了,可以使用機器人囉~
12. 預設功能(功能都在app.js裡面)
如果不是關鍵字詞,預設都會回覆使用者跟他說一樣的話
此時伺服器也會log出資料
當你輸入關鍵字詞時 比如說 receipt (generic,button,image) 牠會回覆app.js裡面設定好的回覆
13. 但是機器人功能只能自己使用,要跟FB申請
通常申請第一像別人就可以用了,使用者的Phone-number看你需不需要
(FB人工審查需要很多時間)
小結:粉絲專頁可以簡單回覆使用者的問題 其實就是人工智慧 回覆訊息可以到很完善(利用龐大的資料庫網路) 甚至可以學習 可以依照使用者給你的訊息去學習該使用者的資訊 並給完善的回覆
下一篇會介紹 "如何客製化自己的回覆訊息"
你好. 我看了你的文章覺得很有用, 但部份部驟我不太明白,想知道pageAccessToken 是指什麼?是不是與appSecret一樣???輸入node app.js 是在哪裡輸入?
回覆刪除不好意思, 因為我是新手, 所以不太懂, 請指教!
你好,請問在7 點找不到 NODE 這個資料...但有這個node_moduele, 同時找不到NODE/CONFIG 設定唔到個變數,
回覆刪除請指教!
謝謝
作者已經移除這則留言。
回覆刪除按照你的做法,在Terminalu 填寫node app.js
回覆刪除但他只會出現Missing config values
問題解決:
回覆刪除default.json開起來之後會有四個欄位(上文中只有三個,少了一個serverURL,也沒教怎麼填)
應該這樣填
"appSecret": "應用程式密鑰",
"pageAccessToken": "粉絲專頁存取權杖",
"validationToken": "自己隨便填",
"serverURL": "https://專案名稱-帳戶名稱.c9users.io"(這裡後面不需要加/webhook)
填好之後在輸入指令的地方輸入node app.js
就會出現Node app is running on port 8080
請問輸入node app.js後
刪除我沒有顯示
Node app is running on port 8080
而是顯示
Error: Cannot find module ‘/home/ec2-user/environment/app.js’
是哪裡錯了嗎?
不能認證噎
回覆刪除