2012-06-12 26 views
1

我剛剛使用JavaScript SDK在我的網站上實施了Facebook連接。現在我想處理一個fql查詢。使用facebook javascript sdk來處理fql查詢

所以我有兩個問題:

  1. 使用只有JavaScript FQL爲 「SELECT id, name FROM user WHERE uid IN (SELECT uid1 FROM friends WHERE uid2=me())」 這可能嗎?

  2. 因爲當我嘗試了一些PHP SDK代碼使用Facebook DOC

PHP:

$app_id = 'MY_ID'; 
$app_secret = 'MY_APP_SECRET'; 
$my_url = 'POST_AUTH_URL'; 
$code = $_REQUEST["code"]; 

$_REQUEST["code"]是相當正常不承認,我不知道什麼是「'POST_AUTH_URL' 「因爲我沒有使用PHP SDK來處理Facebook連接。有人有想法嗎?

回答

14

使用method: 'fql.query'已棄用 REST API的一部分。

一個更好的,面向未來的方式恕我直言,是送你的查詢對圖形API:

FB.api("/fql?q={your urlencoded query}", callback() { … }); 
+0

+1事實上,在棄用過程中遠離API是比較好的選擇。 – Lix

+0

感謝您的精確! – Newben

+0

我知道這是ole,但你能提供這個鏈接。 –

9

使用JavaScript SDK可以輕鬆地執行FQL查詢 -

FB.api(
    { 
    method: 'fql.query', 
    query: 'SELECT name FROM user WHERE uid=me()' 
    }, 
    function(response) { 
    alert('Your name is ' + response[0].name); 
    } 
); 

不要忘記執行任何查詢之前索取您需要的所有權限......


參考 - https://developers.facebook.com/docs/reference/javascript/

+0

OK非常感謝。我不知道這個! – Newben

0

對不起,我不能發表評論,但尚未闡明this helpful answer;什麼工作對我來說是格式化FQL API調用相同的方式,我會用圖形API調用{字段:「EX1,EX2」}:

var fqlRequest = "SELECT name FROM user WHERE uid = me()"; 
FB.api("/fql",{q:fqlRequest}, function(response){ 
    // do cool stuff with response here 
}); 

請注意,我沒有到URL編碼字符串,並將其對我來說工作得很好(我以前使用過 encodeURI(fqlRequest),並且返回了unexpected %錯誤)。

還要記住,如果你使用它們引用的文字:

var id = "1234567890"; 
var fqlRequest = "SELECT name FROM user WHERE uid = ' " + id + " ' "; 
+0

你真的想在'id'之前/之後的空格嗎?我覺得你應該有''... uid ='「+ id +」'「;我知道這很難閱讀,但有了空格它可能會失敗,對吧? –