[Cognitive] 透過Bot Framework快速串接Facebook粉絲頁Messenger到QnAMaker,作出線上自動客服問答

2017年3月,微軟在Cognitive識別服務中加入了QnA Maker的辨識服務,透過簡單的問答內容就可以作到自動回覆問題的功能
這篇文章會透過Bot Framework的整合功能,將Facebook粉絲頁中的Messenger快速的整合QnAMaker的服務,而且不用寫任何一行程式

要快速的建立粉絲頁Messenger的線上客服自動問答,只要照著下面的步驟就可以很快的把QnA Maker或是LUIS的功能串進來

1.首先先連上https://qnamaker.ai,建立一個QnA Maker的服務,在這裡我先建立一個dotblog的QnA Maker service,只要先建立並給予服務名稱就可以,其他都先空白

2.建立完成後,先到[Knowledge Base]的項目裡加入一些基本的問答內容,新增完之後別忘了按下[Save and retrain],並按下[Publish]按鈕作一個發行的動作QnA Maker到這裡先作到一個段落,若是有其他問答內容的維護,只要新增並重新訓練及發行就可以

3.打開Facebook,並建立一個粉絲頁,在這裡我先命名它叫[Dotblog QnA Maker],並完成粉絲頁的建立動作

4.接著回到剛建好的粉絲頁,點選[關於],並在下方將[粉絲專頁編號]記下來,等一下會用到

5.進入到Microsoft Azure Portal中,新增一個新的[Bot Service]服務

6.[Bot Service]的服務建立完成後,點選進入剛剛建立好的[Bot Service],並在設定畫面中選擇這個Bot Service要使用的程式語言,Template先選擇[Question and Answer]的項目,選擇完成後就點選[Next]的按鈕進入到下一步

7.接下來這一步,Azure會需要建立一個應用程式代碼,直接按下[Create Microsoft App ID and password],頁面會跳到建立代碼的頁面,等到App ID被建立完成後就會自動再跳回來

在建立Microsoft App ID的頁面完成時,會產生一組新密碼,請把它記下來,因為下一個步驟就會用到它了

當Microsoft App ID建立完成,回到Portal頁面後,記得把剛剛的密碼貼到文字方塊之中

設定完成後,點選下方的[Create bot]按鈕,畫面就會跳出目前帳號所擁有的QnA Maker Service,選擇剛剛建立好的Dotblog QnA Maker,並點選[OK],到這邊Bot Service的設定就算完成了

可以點選右上方的[Test],確定是否有跟QnA Maker串接起來,有看到正確的回應,代表Bot Service與QnA Maker Service有串好了

8.連上developers.facebook.com/apps/,並建立一個新的app,這裡我命名為[Dotblog QnA Maker App]

9.建立完成後,先進入到這個App的主控版,將[應用程式編號 (FB App ID)],[應用程式密鑰 (FB App Secret)]記下來,等一下會用到

10.接著進入到這個新建立的App中,在左方的選單中點選[+新增產品],並點選項目中的[Messenger]=>[設定]

11.在[Messenger]的設定中,先點選要串接的粉絲專頁,並將產生的權仗值記下來

接下來就要把Facebook Messenger與Bot Service進行串接的動作

12.在Bot Service中,點選[Channel]的頁籤,並點選下方[Facebook Messenger]的圖示,在這裡要建立一個連接Messenger的Bot Channel

13.在設定Bot Channel的頁面上,依序分別輸入[粉絲專頁編號]、[FB App ID]、[FB App Secret]以及粉絲專頁權仗,這四個值在前面的步驟都已經順利取得了,而最下面的兩個欄位,分別是[Callback URL]以及[Verify Token],這兩個值也記下來,等一下要回填到Facebook App中,四個欄位都填完後,按下下方的[Save]按鈕即可

14.接著回到Facebook App的畫面,再次進入Messenger的設定畫面,並點選[設定 Webhooks]

15.在設定Webhooks的畫面中,把剛剛記下來的[Callback URL]以及[Verify Token]分別貼入至設定欄位中,並將[messages]、[messaging_postbacks]、[messaging_optins]、[message_deliveries]這四個項目打勾,並按下[驗證並儲存]

16.接著,在最下方的[Messenger 的應用程式審查]中,將[pages_messaging]進行提交的動作。當然提交後會有一些內容需要補充,若是這個應用程式沒有審查通過,粉絲頁的Messenger就無法對所有人都進行自動問答的服務

到這裡,所有的步驟都已經完成了,你可以實際傳個訊息到粉絲頁的對話窗中,看是否真的有自動回覆吧

現在透過Azure上的Bot Service,可以很快的串接現有的辨識服務,如本篇文章所提到的QnA Maker,或是語意辨識服務LUIS,再透過Bot Service所支援的Bot Channel設定,要能夠快速的整合IM訊息服務達到自動回覆訊息的功能已經不是很難的事,若是能將QnA Maker與LUIS的辨識訓練作到更完整,那麼就可以作到第一線的無人問答服務了

Facebook Messenger要讓所有人可以使用自動問答對話,請一定要將[pages_messaging]進行提交,不然只有開發者自己可以進行自動問答而已

參考資料
[Cognitive] 使用Microsoft Cognitive QnA Maker Service,快速建立線上客服問答服務
[Bot] 使用Microsoft Bot Framework整合現有粉絲專頁的Messenger,並自動回覆訊息內容