繁体   English   中英

使用 JS SDK 和 FQL 获取 Facebook 上所有朋友的列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM