2012年11月2日 星期五

[宅] facebook開發日誌 - facebook API入門(2)

接續前一篇的acess token講解,這篇會介紹一下facebook所提供的4種API
說是這麼說,但其實這篇會比較短,因為真的要詳盡介紹每個API的話乾脆直接買本書看比較快。



"那你他O幹嘛不兩篇寫一起就好?"



因為我要寫兩篇,
感覺比較有成就感,
順便騙騙文章數。

而且我不只要騙文章數,還要騙字數


騙字數的前情提要


<!-- 複製貼上 開始 -->
facebook提供開發者四種API:

  • Login
  • Graph API
  • FQL
  • Legacy REST

<!-- 複製貼上 結束 -->



Login

顧名思義就是提供登入的方法,可能是網站也可能是APP,這邊就不詳述。


Graph API

主要是用於社群用途,只要有適當的存取代碼(access token),就可以網址加上參數的方式去query需要的data,回傳的形式可能是json或單純的網址。這裡有個很簡單的範例,只要在空格內輸入你的UID就行了(不知道自己的uid請回去上一篇看看怎麼取得自己的基本資料,資料中的"id"就是了)

http://graph.facebook.com//picture GO!


簡單的一個網址就可以取回使用者的頭像了。

"但是剛剛不是才說要取得access token嗎?怎麼這麼輕易就取得了使用者的頭像了勒?"


這是因為facebook對資料有分級,以頭像來說好了,無論你和他是不是朋友,大部分facebook使用者的頭像都是可見的,存取這類開放的資料當然不需要特別的授權。甚至很多人的興趣、學歷、感情狀態等資料都是沒有設隱私的,我們就可以在沒有access token的情況下query到這些資料,就跟上一篇講到的一樣。




FQL

FQL是在取得適當access token的情況下,以類似SQL語句的方式來query資料。能做的事情更多,但對沒碰過SQL的初學者來說就比較沒那麼容易上手,只要稍微碰過SQL的人就會發現FQL相當好用也很強大
為了達到一開始所提到的收集照片的功能,我寫了以下的一段code:
SELECT pid, src, src_big, caption FROM photo
WHERE aid IN (
  SELECT aid, owner, name, object_id 
  FROM album WHERE owner=#{me}
)
你可以把這段code貼在Graph API Explorer上,但是首先記得要切換成FQL模式,並再點一次"取得存取代碼"來增加"user_photos"這個存取權限。點選送出後,看看會發生什麼事。
(記得把#{ME}換成你的ID啊!)

Legacy REST

facebook已經宣佈不建議使用這種API,並建議使用graph api,所以當然果斷捨棄不解釋
"We are in the process of deprecating the REST API."


沒有留言:

張貼留言