我正在尝试使用我的Facebook应用程序获取当前用户的所有朋友的列表:
这是我的代码供您参考:
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 :(得分:1)
queryUserName
与您的其他查询之间的区别在于queryUserName
包含一个参数{0}
。
您的其他查询正在使用me()
,因此他们不需要传入数据参数。
您需要更改此行:
var query = FB.Data.query(queryOnFriends2, meID);
到此:
var query = FB.Data.query(queryOnFriends2);
答案 1 :(得分:0)
好的,我现在明白了...我用php来授权我的应用......但是也没有验证!当只使用facebook jsSDK和initalize,然后使用getStatus时,它会自动完成所有操作!
然后查询工作了!