BOT

什麼是BOT?

全稱應該是 Chatbot——聊天機器人

這裡討論的BOT指得是一個功能強大的聊天機器人助理。像是一個客服,要在跟你聊天的同時,了解你的意圖,幫你處理你的事項,完成你想讓它幫你完成的工作。

如微軟 Cortana、蘋果 Siri 和 Google Now,從聊天機器人的角度來看它們都屬於這個範疇


FB的BOT

Facebook它主要是想讓協力廠商服務商把 Bot 放到自家的 IM 軟體 Messenger 上;

[前置作業]

  1. 有粉絲團 : 用來當作 Bot 的身份,目前只支援粉絲團對一般使用者聊天而已
  2. 申請FB的應用程式
  3. 開始寫程式

[程式撰寫]

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 上。

參考:

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技術開發的交友機制

https://www.facebook.com/getHerHim/


參考

results matching ""

    No results matching ""