【问题标题】:Get a List of All Friends on Facebook Using JS SDK and FQL使用 JS SDK 和 FQL 获取 Facebook 上所有好友的列表
【发布时间】:2011-08-11 15:23:42
【问题描述】:

我正在尝试使用我的 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) 有效,但是,它甚至在失败的情况下不执行回调函数!

我做错了什么?

【问题讨论】:

    标签: javascript facebook facebook-fql


    【解决方案1】:

    queryUserName 与您的其他查询的区别在于queryUserName 包含一个参数{0}

    您的其他查询正在使用me(),因此它们不需要传入数据参数。

    你需要改变这一行:

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

    到这里:

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

    【讨论】:

      【解决方案2】:

      好的,我现在知道了……我使用 php 来授权我的应用程序……但也没有进行身份验证!当只使用 facebook jsSDK 并 initalize 然后 getStatus 它会自动完成!

      然后查询成功了!

      【讨论】:

        猜你喜欢
        • 2013-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-02
        • 1970-01-01
        • 1970-01-01
        • 2017-06-05
        相关资源
        最近更新 更多