說是這麼說,但其實這篇會比較短,因為真的要詳盡介紹每個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."