本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


美國總統大選那段時間席捲大家 Facebook 塗鴉牆的就是「直播心情投票」了吧!

然後,然後就,大家都跟著玩了XD

操作就是:

  1. 製造對立
  2. 對立選項不能超過目前 Facebook 心情數量(6個)

目前個人看過最爛的是拿來投票「星座」,星座有十二個阿抓六個這樣投也太鳥,至於主題什麼都差不多

十二星座中的哪個最blah blah blah...

但最有創意的是這篇,突破了對立!

讓大家是參與來把玩這可愛的電風扇XD 也太溫馨了吧!

離題了 Orz

不管內容是怎麼構築,最關鍵還是使用投票的方法與技術

關鍵的兩個技術

首先當然是要先透過 Live Video API 在你的電腦上開啟直播拉!(可參考我的工具:Live Show

然後投票的部分是:

A. Facebook Graph API 中的 Object Type ID 來查對應欄位資訊

B. 也在 Facebook Graph API 分類下的 Webhooks API

區別是

  1. A 是你去跟 Facebook 要資訊,B 是 Facebook 通知你有更新
  2. A 較即時,B 大約晚個 5 秒左右
  3. A 是取得總統計值,B 是取得每一次彙總的操作值(例如:打了一個讚、取消了一個讚、修改成一個怒..等等)
  4. A 要的太頻繁或是 token 過期,就會被 Facebook 給禁止操作,B 不會
  5. A 的做法簡單,B 整個太麻煩(哈)

Facebook Graph API 中的 Object Type ID 來查對應欄位資訊

關於 A 網路上也有人分享現成的做法,使用流程:開直播,把 Post ID 改上程式,補上 access token 就可以開始了!

Post ID 要從介面上找,目前做法是發布直播後標題下方的時間欄位,複製連結可以找到最後面的一串數字就是ID了

至於 access token 可以參考之前寫的一篇 Facebook API 教學:客製化登入流程並以粉絲頁互動應用為例

但這邊的 access token 其實不像上面那篇提到的這麼複雜,他只要有閱讀權限就可以,這個檢測方法也很簡單,只要你看得到直播你就有權限,使用個人的授權碼就可以,要測試可以用我的工具:FB OAuth (可自代 app_id & app_secret 這兩個 GET 參數變成你的 App 測試,純順流程,不會紀錄,請安心)

A 方法的關鍵就是用欄位查找的方式去向 Facebook 問這些心情的統計資訊,會生成一段如下方所示的查詢連結,然後每秒問一次取得更新,在顯示在螢幕上

https://graph.facebook.com/v2.8/?id=LIVE-VIDEO-POST-ID&fields=reactions.type(LIKE).limit(0).summary(total_count).as(reactions_like),reactions.type(LOVE).limit(0).summary(total_count).as(reactions_love),reactions.type(WOW).limit(0).summary(total_count).as(reactions_wow),reactions.type(HAHA).limit(0).summary(total_count).as(reactions_haha),reactions.type(SAD).limit(0).summary(total_count).as(reactions_sad),reactions.type(ANGRY).limit(0).summary(total_count).as(reactions_angry)&access_token=YOURACCESSTOKEN

Facebook Graph API 的 Webhooks API

方法 B 就麻煩了,這塊比較紅的是 Facebook Messenger Bot 機器人,透過 Webhooks 把你的訊息通知給訊息機器人分析來回應,而這邊就是用相同概念讓 Facebook 去根據我們訂閱(Subscribe)的資訊來通知。

訂閱的項目不少,這邊是針對粉絲頁的互動來操作,會有下面操作流程:

  1. 申請一個 Facebook App,輸入名稱信箱跟用途
  2. 進控制面板後左側 新增產品 ,把 Webhooks 加入
    Facebook App 新增產品

  3. 點選 Webhooks 你將會看到一個 新訂閱內容 的按鈕在右邊欄,點下去,選擇 Page (粉絲頁)

  4. 填入你寫的 回呼網址 (callback url)、 驗證權杖 (verify token),最後是勾選 訂閱欄位

設定 Webhooks

注意:網址要 HTTPS 協定、驗證權杖其實就是你愛打什麼就打什麼,在自己程式裡去判斷用的。

到這邊有個雷一定要寫出來,文件只有寫說訂閱 conversations 就可以取得一些貼文互動,但沒有說其實還要補上訂閱 feed ! 也是我試出來的,原因大概是要讀到互動,至少會要能讀到訊息流這樣的權限先後吧!不過也給我寫一個判斷機制是勾了 conversationsfeed 也幫我勾一下麻 Orz

到這邊還只是設定 App 接收資料的部分,接下來是綁定粉絲頁與 App 的訂閱關係

有兩種做法

  1. 簡單的是去再新增產品 Messenger 然後在右欄中的 Webhooks 中做一次上面說的 1~4 步驟,下方可以直接選要訂閱的粉絲頁,跟上方可以拿到授權碼(如果要測試機器人的話會用到)
    設定 Messenger
  2. 喜歡敲鍵盤的人可以在拿到粉絲頁授權App後的 access token ,使用下面請求方式訂閱

    curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=YOURACCESSTOKEN"

以上兩大訂閱操作完成後就可以在程式去捕捉到粉絲頁的動態拉! 至於實作上就沒寫在這裡了,看需求而定!

也有熱心網友提供基本款 Facebook 機器人的 PHP 原始碼可以參考看看~ 稍微改裝一下就能用來操作直播心情投票囉!

至於哪種方式直播投票好,我覺得都沒差,真要比喻就是實作B方法有些殺雞用牛刀,官方說 Webhooks的「變更彙總並批次傳送的時機為:最多每 5 秒一次」,跟手動每秒請求一次在一場持續熱烈參與的活動中效果沒有差太多,反倒是要記得顧好網路別斷線造成直播中斷,比較實在~

但訂閱 Webhooks 的做法可以幫助分析人員得到不少數據,絕對是掌握粉絲行為的最佳解了!


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon