本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
美國總統大選那段時間席捲大家 Facebook 塗鴉牆的就是「直播心情投票」了吧!
然後,然後就,大家都跟著玩了XD
操作就是:
- 製造對立
- 對立選項不能超過目前 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
區別是
- A 是你去跟 Facebook 要資訊,B 是 Facebook 通知你有更新
- A 較即時,B 大約晚個 5 秒左右
- A 是取得總統計值,B 是取得每一次彙總的操作值(例如:打了一個讚、取消了一個讚、修改成一個怒..等等)
- A 要的太頻繁或是 token 過期,就會被 Facebook 給禁止操作,B 不會
-
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)的資訊來通知。
訂閱的項目不少,這邊是針對粉絲頁的互動來操作,會有下面操作流程:
- 申請一個 Facebook App,輸入名稱信箱跟用途
-
進控制面板後左側
新增產品
,把Webhooks
加入
-
點選
Webhooks
你將會看到一個新訂閱內容
的按鈕在右邊欄,點下去,選擇Page
(粉絲頁) -
填入你寫的
回呼網址
(callback url)、驗證權杖
(verify token),最後是勾選訂閱欄位
注意:網址要
HTTPS
協定、驗證權杖其實就是你愛打什麼就打什麼,在自己程式裡去判斷用的。
到這邊有個雷一定要寫出來,文件只有寫說訂閱 conversations
就可以取得一些貼文互動,但沒有說其實還要補上訂閱 feed
! 也是我試出來的,原因大概是要讀到互動,至少會要能讀到訊息流這樣的權限先後吧!不過也給我寫一個判斷機制是勾了 conversations
那 feed
也幫我勾一下麻 Orz
到這邊還只是設定 App 接收資料的部分,接下來是綁定粉絲頁與 App 的訂閱關係
有兩種做法
- 簡單的是去再新增產品
Messenger
然後在右欄中的Webhooks
中做一次上面說的 1~4 步驟,下方可以直接選要訂閱的粉絲頁,跟上方可以拿到授權碼(如果要測試機器人的話會用到)
- 喜歡敲鍵盤的人可以在拿到粉絲頁授權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 的做法可以幫助分析人員得到不少數據,絕對是掌握粉絲行為的最佳解了!