PS: 這項功能似乎需要使用Facebook帳號登入此網站才能使用,如果下面的功能無法使用,請按下面的按鈕登入,然後refresh頁面再試試。
Facebook Query Language,簡稱為FQL,為Facebook提供的SQL形式查詢介面,使用上只要將Query String像下面這樣丟出去
https://api.facebook.com/method/fql.query?query=QUERY
然後取得回應即可,回應來的格式可以是xml或是json,看你怎麼指定。 為方便示範結果,所以我使用Facebook的JavaScript SDK去呼叫,先來一個取得名字的簡單範例,語法為
SELECT name FROM user WHERE uid=me()
實際出來的結果可以按看。
然後就來實際運用了,現在很多facebook遊戲都會有個進度條,裡面通常會有個條件是對這個遊戲按讚(Like),雖然說用Graph API可以拉出來使用者有Like過的所有應用程式/頁面,但是還得自己做篩選,才能知道有沒有對指定的頁面按過Like,有點麻煩,所以這時候可以使用FQL來解決問題。 先從拉出使用者Like的資料開始。
SELECT page_id FROM page_fan WHERE uid=me()
按可以看到結果呈現在下面。
能拉出結果後,就要來做篩選的動作了,篩選出結果的同時,我順便把拉出來的page_id轉成好懂的名字,語法如下
SELECT page_id,name FROM page WHERE page_id IN (SELECT page_id FROM page_fan WHERE uid=me() AND page_id='158779757474862')
按可以檢視所得的結果。如果有Like我的部落格,就會有訊息視窗跳出來囉,會跳兩次分別寫name與page_id。
如果你想測試的話,也可以現在按
JavaScript使用FQL語法很簡單,只要這個頁面能跑FBML,然後就可以參照下面的範例去呼叫。
function query(str){ FB.api( { method: 'fql.query' , query: str }, function(response){ for (var i in response[0]) {alert(i+'='+response[0][i]);} } ); }
No comments:
Post a Comment