本篇介紹FB的範例,利用messenger API account-linking功能,連結外部網站的帳號。在設計聊天機器人時,如果需要安全的方式存取外部的帳號,做互動,可以利用這個API。
1. 在如下網址可以下載:
https://developers.facebook.com/docs/messenger-platform/getting-started/sample-apps
2. 要用這個範例程式,需先到Heroku申請帳號,並下載Heroku軟體,因為要放到雲端去跑。
3. 把原始碼git clone回來後,執行下列指令:
$ cd /path/to/fb-chatbots $ heroku create # {URL_TO_HEROKU_APP} 改成上方的執行結果取得的URL,例https://mysterious-oasis-12345.herokuapp.com/ $ heroku config:set SERVER_URL=https://{URL_TO_HEROKU_APP} # Note the token can be any word chosen by you and is used to by Facebook to check that they have the correct server for your Messenger Bot $ heroku config:set WEBHOOK_TOKEN=random_demo_token_123 # This pushes just the account-linking folder to Heroku $ git subtree push --prefix account-linking heroku master
上面的指令過程和GIT上的範例程式一樣,但我把單引號拿掉,新版的heroku不需要單引號,加了只會讓範例不能成功。
報行結果可以參考Readme圖片:
https://github.com/oscarhsu/messenger-bot-samples---oscar-fix/tree/master/account-linking
https://github.com/oscarhsu/messenger-bot-samples---oscar-fix/tree/master/account-linking
上述的heroku config:set 指令想設定的東西,也可以到Heroku網站上直接設定:
4.到FB的應用程式,設定你的Webhooks,設定方式如同之前介紹過的:
https://dotblogs.com.tw/oscar/2018/09/12/102325
https://dotblogs.com.tw/oscar/2018/09/12/102325
但改成,回呼網址是https://{URL_TO_HEROKU_APP}/webhook,驗證權杖是random_demo_token_123,訂閱3個欄位messages, messaging_postbacks, messaging_account_linking
5. 執行下列指令,設定Heroku上的粉絲專頁存取權杖:
heroku config:set PAGE_ACCESS_TOKEN=粉絲專頁存取權杖
heroku config:set PAGE_ACCESS_TOKEN=粉絲專頁存取權杖
6. 現在可以到粉絲專頁的messenger跟機器人互動,測試登入登出功能了。
備註:
我將我修改的Branch放在:
https://github.com/oscarhsu/messenger-bot-samples---oscar-fix/blob/master/account-linking/README.md
https://github.com/oscarhsu/messenger-bot-samples---oscar-fix/blob/master/account-linking/README.md
沒有留言:
張貼留言