如果能夠將整條 webhook 的訊息流都串起來的話,那麼就可以來觀察一下 server 到底會接收到怎樣的訊息囉!
整體的概念是,當使用者對 FB 做動作的時候,會去觸發綁定好的 webhook,這個 webhook 很像一個監聽的地方,當收到了來自 user 的事件之後,就會傳給原先綁定好的 server 位址,下面將會看到 webhook 會傳給我們的 server 什麼樣的訊息,當我們本地端的 server 接收到訊息的時候,只要去拆開擷取要的內容,並且做處理(可以透過 API 做回應),即可達到我們想要的目的了!
使用者留言
{
from:
{ id: '2057065604350885', name: '汪xx' },
post:{
type: 'status',
status_type: 'mobile_status_update',
is_published: true,
updated_time: '2019-08-07T05:51:12+0000',
permalink_url:
'https://www.facebook.com/permalink.php?story_fbid=363703670970399&id=199821620691939',
promotion_status: 'inactive',
id: '199821620691939_363703670970399' },
message: '範例留言',
post_id: '199821620691939_363703670970399',
comment_id: '363703670970399_363761370964629',
created_time: 1565157072,
item: 'comment',
parent_id: '199821620691939_363703670970399',
verb: 'add'
}
為了要抓取特定某篇文章,可以用 post_id
做過濾,message
可以得到留言內容,也可以使用 RegExp
做更多處理。其中要如何得到 id
呢?只要到想要的那篇貼文,點擊日期時間,之後看到網址 URL 裡面會有一個 attribute story_fbid
以及 id
,照著上面要的格式先貼上 {id}_{stroy_fbid}
,這樣就可以得到該篇 post 的 id 囉!
小編回覆
在 server 端可以照著以下的 api 去送,當我進來檢查完 webhook,確定是回在指定文章以及指定訊息,那就可以送出以下的 api ,就會產生出回文的動作拉!
POST https://graph.facebook.com/v3.2/" + comment_id + "/comments?access_token=" + access_token
{
message: message
}