iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
0
自我挑戰組

學習 Android Kotlin 隨筆系列 第 24

[ Day 24 ] FB 自動回文小編(二)

  • 分享至 

  • xImage
  •  

前言

如果能夠將整條 webhook 的訊息流都串起來的話,那麼就可以來觀察一下 server 到底會接收到怎樣的訊息囉!

自動回文小編

整體的概念是,當使用者對 FB 做動作的時候,會去觸發綁定好的 webhook,這個 webhook 很像一個監聽的地方,當收到了來自 user 的事件之後,就會傳給原先綁定好的 server 位址,下面將會看到 webhook 會傳給我們的 server 什麼樣的訊息,當我們本地端的 server 接收到訊息的時候,只要去拆開擷取要的內容,並且做處理(可以透過 API 做回應),即可達到我們想要的目的了!

webhook event

  • 使用者留言

    { 
        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 ,就會產生出回文的動作拉!

    • URL
    POST https://graph.facebook.com/v3.2/" + comment_id + "/comments?access_token=" + access_token 
    
    • Body
    {
        message: message
    }
    

參考

  • 連結 | 如何取得 access token
  • 連結 | Fb 回文 api
  • 連結 | feed,粉專文章一有變動都會產生一個 feed

上一篇
[ Day 23 ] FB 自動回文小編(一)
下一篇
[ Day 25 ] Java 專案 - 如何正確辨識每台不同的本地 PC
系列文
學習 Android Kotlin 隨筆30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言