2011-08-11 40 views
1

我想用我的Facebook應用程序,以獲取當前用戶的所有好友列表的列表:
這是我對你的參考代碼:獲得在Facebook上所有好友的使用JS SDK和FQL

var meID = <?php echo $data['user_id']; ?>; 
    var queryOnFriends = "SELECT uid, name, online_presence, status FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = " + meID + ")"; 
    var queryOnFriends1 = "SELECT uid, name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=" + meID + ")"; 
    var queryOnFriends2 = "SELECT uid2 FROM friend WHERE uid1 = me()"; 
    var queryUserName = "SELECT name, uid FROM user WHERE uid={0}"; 
    var query = FB.Data.query(queryOnFriends2, meID); 
    query.wait(function(rows){ 
     alert("in callback"); 
     document.getElementById('display').innerHTML = 
     'Your name is ' + rows[0].name; 
    }); 

參考我的嘗試,使用var queryUserName工作正常,但所有其他人沒有工作,甚至從FQL示例的簡單queryOnFriends2
應用程序要求正確的權限(read_friendlists, user_online_presence, friends_online_presence)和FB JS SDK似乎初始化的很好,因爲查詢用戶自己的用戶名(queryUserName)的作用,但它甚至不會在失敗的情況下執行回調函數!

我在做什麼錯?

回答

0

好吧,我現在得到它...我用PHP來授權我的應用程序...但沒有驗證以及!當只使用facebook jsSDK和initalize,然後getStatus時,它會自動完成這一切!

然後查詢工作!

1

queryUserName與其他查詢的區別在於queryUserName包含一個參數{0}

其他查詢使用me()代替,所以他們並不需要一個數據參數傳遞

你需要改變這一行:

var query = FB.Data.query(queryOnFriends2, meID); 

這樣:

var query = FB.Data.query(queryOnFriends2); 
+0

thx爲您的提示! – haemse

相關問題