BOT
什麼是BOT?
全稱應該是 Chatbot——聊天機器人
這裡討論的BOT指得是一個功能強大的聊天機器人助理。像是一個客服,要在跟你聊天的同時,了解你的意圖,幫你處理你的事項,完成你想讓它幫你完成的工作。
如微軟 Cortana、蘋果 Siri 和 Google Now,從聊天機器人的角度來看它們都屬於這個範疇
FB的BOT
Facebook它主要是想讓協力廠商服務商把 Bot 放到自家的 IM 軟體 Messenger 上;
[前置作業]
- 有粉絲團 : 用來當作 Bot 的身份,目前只支援粉絲團對一般使用者聊天而已
- 申請FB的應用程式
- 開始寫程式
[程式撰寫]
1. 設定 Webhook 做驗證
這是做設定使用 官方是使用node.js
app.get('/webhook/', function (req, res) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
})
你在設定webhook網址的時候,facebook 會發一個 request 給你,看看 response 是不是正確的 如果不正確的話,那就沒辦法進入下一階段了
必須設定兩個東西
- callback url : 上面寫的那個小程式在的地方,這邊有要求「一定要是 https」
可以嘗試使用 CloudFlare
- verify token : 驗證用的,看心情隨便填就好
什麼是WebHook?
Hook 這個名詞,過去出現在程式設計、除錯技巧與架構設計等領域,並且都有不同的意思。 以架構設計來說,Hook 代表「擴充插座」的意思。
例如,要在 Android Framework 裡擴充客製化的 Android Service,就要重用 IInterface 設計。
Webhook 的概念由 Jeff Lindsay 於 2007 年提出。Webhook(或者寫做 WebHook)延續了 Hook 的精神。
Webhook 是一「HTTP Callbacks」的機制。
WebHooks 是一個Backend-to-backend 的好模式,
WebHooks 更可以經由 RESTful 與手機的 Notification 機制整合。
在 Github 上的 commits 提交,就可以透過 WebHooks 的方式,通知 Deploy server 做即時的 pull。
當你把程式碼提交到 Github 後,可以透過 Webhook 讓 Github 來 Callback 你的一個 HTTP API。
這感覺有點像,把自已的 HTTP API 接到 Github 上。
參考:
- JOLLEN - mBaas:改變開發生態、也創造新的 Business 思惟
2. 接收訊息
Facebook 傳遞過來的文字訊息 JSON 格式
{
"object": "page",
"entry": [
{
"id": 1719080561637302,
"time": 1463187309603,
"messaging": [
{
"sender": {
"id": 1176454272400076
},
"recipient": {
"id": 1719080561637302
},
"timestamp": 1463187309521,
"message": {
"mid": "mid.1463187309223:ae45fc642d87298297",
"seq": 23,
"text": "嗨,你好。"
}
}
]
}
]
}
從 entry → messaging 取得每一則訊息傳送者和內容
3. 傳遞訊息
傳遞訊息也很簡單,只需要呼叫 Graph Message API 即可
https://graph.facebook.com/v2.6/me/messages?access_token=ACCESS_TOKEN
傳遞的資料一樣是JSON格式,透過POST方式傳遞
{
"recipient":{"id": to},
"message":{"text":message}
}
創新運用
[Him/Her]
利用FB的BOT技術開發的交友機制