作者/攝影 | 曾吉弘 |
時間 | 2小時 |
成本 | 無 |
難度 | * * * * |
材料表 |
|
本文要介紹如何使用Facebook的圖形API測試工具(Graph API explorer) 取得粉絲頁的相關資料,最常見的應用就是讚數。如果喜歡的話,還可以結合Arduino作出有趣的互動裝置,例如以下:
(註:本影片僅為示意,並非使用Python來取得資料)
Facebook開發者平台與圖形API測試工具頁面
請到Facebook開發者網站(請用您原本的Facebook帳號登入即可),在網頁最下面找到 圖形API測試工具(Graph API explorer)。您可以在此查詢您個人的所有資料,查詢結果會以 json 格式回傳,下圖是阿吉老師的Facebook Id 與使用者姓名的查詢結果:
請點選畫面右上角的下拉式選單,找到您所要查找的粉絲專頁(您得是該專頁的管理員才行),例如本範例的CAVE教育團隊。下圖查詢了四個項目:id、name、fan_count(讚數)與link。您當然可以查詢其他欄位,只要有輸入資料都可以查得到。
以往的做法是比較寬鬆的,不需要AccessToken,且只需要把粉絲頁超連結www改為graph即可,但現在已經都需要從圖形API測試工具取得才行,這也暗示了您需得是該粉絲頁的管理員才可查找。並且AccessToken會在兩小時之內過期。網路上介紹如何取得永久有效的AccessToken,但不在本篇討論範圍之內。
Python程式碼
最後請看一下本範例的Python程式碼,
阿吉碎碎念:Facebook相關的API改動非常快,例如2.6之前,fan_count 原本是叫做 likes。其他雲服務也會常常改,但真的Facebook最愛改就是了,可能和創辦人個性有關吧~
本範例的關鍵URL由以下四個項目組成:
- facebook api 網址:https://graph.facebook.com/v2.10/
- 粉絲頁id:148248725246010 (CAVEr教育團隊)
- 要查找的欄位:?fields=id,name,fan_count,link&access_token=
- Access token:請由Facebook API圖形API測試工具
當然,其他程式語言如C#、Node.js 甚至App Inventor等都可以做到本範例的效果,您可以在取得資料之後直接使用瀏覽器來測試,只要看到以下畫面就是ok的:
https://graph.facebook.com/v2.10/148248725246010?fields=id,name,fan_count,link&access_token=XXX
FB API 2.10
#22是您要查詢的Facebook帳號或粉絲專頁ID。#23則是Access Token
#04是自訂的函式來處理Facebook API回傳的JSON格式結果。
#24~26 則是依序顯示出我們所要查詢的欄位,執行畫面如下圖:
相關文章:
Hi, 我最近在嘗試使用 graph api 抓粉專的頁面文章還有底下回覆
發現文章可以抓得到但回覆抓不到耶, 想虛心請教您那邊是否有遇到同樣情況
文章 url: https://graph.facebook.com//feed?access_token= =>成功
回覆url: https://graph.facebook.com//comments?access_token= => 失敗
失敗碼:(#100) Pages Public Content Access requires either app secret proof or an app token
取得 access_token 是第一步,但我們原本的範例是 api 2.x 3.x 現在都更新到 6.0 了,只能說跟著這個跑也是很累。