在上一篇 如何添加facebook messenger聊天外掛到自己的網站 我們知道了如何將聊天外掛加入到自己的網站,這篇則會實作自動回覆訊息的功能。
網路上有不少關於facebook messenger 自動回覆的第三方應用,可以透過它們的服務實現自動回覆的功能(例如:AutoChat 的 Andter Bot)。使用這些服務的好處是即使不會寫程式的使用者也能使用。
不過,今天的文章不會提到如何使用這些第三方應用服務,而是會告訴大家如何實作一個facebook messenger 自動回覆功能。
當然,要實做這個功能您可能需要一點點PHP程式的知識。(真的只要會一點點就行~)
如果不想太麻煩,可以參考這篇
在開始之前,您需要先建立一個 facebook app應用程式。(如果不會建立的話,請先參閱上一篇 點這裡)
事前準備
(2).有https的網域
facebook messenger 自動回覆實作
(一).在facebook app 添加一個Messenger產品
(二).設定Webhooks
(三).在您的伺服器添加自動回覆的程式代碼
設定 Messenger 產品
添加一個Messenger產品後,我們找到權杖產生的部分,並選擇粉絲專頁,讓應用服務產生出存取權杖。
應該會跳出一個授權的頁面,點選以您的身分繼續。
然後,會再出現一個是否授權粉絲頁管理權限給此應用服務的確認通知
點下確認授權後,就會看到產生如下圖的存取權杖。
接著下來,我們要設定Webhooks的部分。在Messenger產品找到Webhooks並點選設定WebHooks。
會看到如下圖的彈掉視窗,設定方式可以參考圖中的設定。
回呼網址必須為有效頁面
1.在提交前要先在您的伺服器建立對應的處理頁面(參考腳本)。
2.該頁面網址必須為https
處理頁面的參考腳本
驗證成功後,便可在左方產品的部分看到多了一個Webhooks(下圖1位置)(先別理它),接下來我們一樣在Messenger的Webhooks找到選擇粉絲專頁(下圖2位置)讓webhooks訂閱您的粉絲專頁。
選擇粉絲專頁並訂閱
訂閱成功
建立自動回覆的程式腳本(PHP實作)
開始進入重頭戲,在這邊只會簡單的演示自動回覆如何實作。您可以直接下載下方的範例去做二次開發,例如導入深度學習的程式,或建立視覺介面或搭配資料庫應用...。
下載範例後,程式大約可拆解成五個部分。
(一).webhooks驗證
這個部分等同於上一個範例檔,這階段基本上只會用到粉絲專頁存取權杖的部分(請替換成您自己的存取權杖)。不過,保險起見還是保留此部分的代碼。
(二).解析messenger獲取的訊息
如果有訊息傳遞的話,我們會收到 json 格式的資料,在這邊只擷取出等下會用到的兩個主要參數。(訊息發送者與收到的訊息)
(三).判斷是否有收到訊息
此部分會特地解說,是因為之前Aidec在寫代碼時,未判斷資料串內是否有訊息欄位的參數,導致收到一筆訊息後會造成無窮迴圈。總共收到一萬多封回覆,手機響個不停,最終必須得重啟服務器與刪掉應用。
研判應該是每次回傳訊息後,fb又會自動發送feedback。導致回傳訊息,fb發送feedback又觸發系統回覆訊息,又發送feedback又回覆訊息...。
(四).判斷回覆的內容
此部分應該可視為整個代碼的核心吧~這邊只是用簡單的判斷是回覆內容。如果有需求可自行改寫此部分,例如導入AI自然語言、深度學習之類的...
讓回覆更加精準、更有意思...
(五).將回覆訊息回傳給facebook
這邊使用curl,將我們要回覆的訊息回傳給facebook。回傳的格式一樣是json。
基本上到這邊就完工啦~ 才怪!!
Messenger 的應用程式審查
我們的大魔王出現了,這邊我一定要先抱怨一下,Aidec在這個階段大概審查了6、7次才審查通過。(原因在於它們的審查人員覺得我的bot回覆不像是bot回覆)
也許你會問,為什麼一定要做審查呢? 因為沒有通過審查的話,就只有管理員能收到自動回覆。其他的用戶輸入訊息的話,根本不會觸發程式。
先點選上圖1將pages_messaging項目提交到審查,接著確認是否有添加應用程式圖示。再來點上圖3 Add Details 填寫審查資訊
在上圖1的位置選擇您的粉絲專頁,接著選擇上圖2位置的那個選項。
為什麼要選上圖二呢? 在Aidec多次審查後,發現到使用第二個選項比較容易審查通過。之前想說我明明就有提供Bot所以要選擇第一個選項,但是偏偏就是會審不過。
所以,還是用第二個選項吧~別折騰自己了。
填寫完畢後,儲存並提交進行審查。大概等一下就會有審查系統測試您的Bot應用了。估計大約一天內,就會收到通知告知是否有通過審查。
那.......就祝各位審查順利通過啦~
文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)
原文連結:
https://blog.aidec.tw/post/facebook-messenger-auto-reply-chatbot-use-php
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記