[英]Get a List of All Friends on Facebook Using JS SDK and FQL
我正在尝试使用我的 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
)有效,但是,它甚至不执行回调 ZC1C425268E68385D1AB5074 失败案例
我究竟做错了什么?
queryUserName
与您的其他查询之间的区别在于queryUserName
包含一个参数{0}
。
您的其他查询正在使用me()
,因此它们不需要传入数据参数。
您需要更改此行:
var query = FB.Data.query(queryOnFriends2, meID);
对此:
var query = FB.Data.query(queryOnFriends2);
好的,我现在明白了...我使用 php 来授权我的应用程序...但也没有进行身份验证! 当仅使用 facebook jsSDK 并初始化然后 getStatus 时,它会自动完成!
然后查询成功了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.