Facebook Graph API
在 Facebook Graph 的世界裡,整個世界就是一張圖, 這張圖是由一個一個的節點與節點間的連線所組成,每一個節點,就是一個 Facebook 的物件,像是用戶、相片、粉絲專頁或是貼文,他們都是一個個物件。
每個物件有自己的ID,所以想要取得某物件的資訊,就要先取得他的ID,Facebook Graph API 基本格式如下:
https://graph.facebook.com/vX.Y/{request-path}
- 前段是 Graph API 的網址
- 中段是 Graph API 的版本(目前是2.9)
- 後段 {request-path} 附上我們想取得的資訊, 需包含節點 id, access token, 節點屬性等。Access token 是一個讓你可以表明自己的身份以及自己的權限的隨機字串。Token 的權限各不相同, 一個 token 無法用來取得該權限以外的資料。
測試 API 的官方網頁:https://developers.facebook.com/tools/explorer
參考資料:
取得個人資訊
你會看到me?fields=id,name
,me
用來取得使用者的基本資訊,問號後表示屬性是 id 跟 name,那這時候直接按 Submit 的話,他就會給你一個 error ,告訴你他需要一個 token 。
在取得相關資料之前,我們必須得到使用者許可,對於程式來說,我們必須使用存取權杖(token)
來向 Facebook 要求資料。
這時你可以點選 Get token 來取得你所需要的權限(user_status),取得 token 後再試一次,就可以成功了。而且你會發現他很貼心的直接給了你一個 JSON 檔。
練習
取得朋友列表後,在最後一段可以看到朋友總數
- 屬性:friends
- 權限:user_friends
取得粉絲專頁貼文
粉絲專頁:https://www.facebook.com/hsuehjendada/?fref=ts
Facebook ID 搜尋工具:http://lookup-id.com/
在 API 的網址列,貼上[粉絲頁的 ID]/posts
,因為此粉絲專頁為公開,所以按下 Submit 後就可以成功取得貼文,可以看到貼文的時間、內文及 id 等資訊。
{
"created_time": "2017-04-09T05:06:42+0000",
"message": "姥鯊,嘴巴超大的鯊魚,但只吃浮游生物,不吃人。
https://www.google.com.tw/search?client=safari&hl=zh-tw&biw=320&bih=460&tbm=isch&sa=1&ei=773pWJyZM8u10gSgm7_4Cw&q=%E5%A7%A5%E9%AF%8A&oq=%E5%A7%A5%E9%AF%8A&gs_l=mobile-gws-img.3..0.811904.812720.0.813127.3.3.0.0.0.0.236.366.2j0j1.3.0....0...1.1.64.mobile-gws-img..0.1.235.j5PKMAWrMdo",
"id": "141408359234615_1480804845294953"
}
練習
撰寫程式碼,取得此貼文的讚數以及留言並轉成 csv
- 貼文:https://www.facebook.com/OrangeApplePad/posts/1435970196461492
- ID: 4831485050770041435970196461492 (粉絲團ID_貼文ID)
- 屬性:likes, comments