【问题标题】:Facebook current UID with FQL带有 FQL 的 Facebook 当前 UID
【发布时间】:2009-07-26 15:31:16
【问题描述】:

如何使用 FQL 获取我当前的 UID。我想通过使用 fql.multiquery 获取用户的朋友来节省流量和请求

"query1": 获取需要我的用户 ID "query2":"SELECT uid, first_name, last_name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=MYUSERID) order by first_name"

应该还给我的朋友!通过friends.get 和users.getInfo 获取用户需要2 个请求并且不是最优的......

谢谢

【问题讨论】:

    标签: facebook facebook-fql


    【解决方案1】:

    您的第一个查询应该完全没有必要,因为 Facebook 总是通过 fb_sig_user 参数(POST 或 GET)向应用程序提供 uid。我不确定您可以使用哪种 FQL 查询来根据其他形式的信息获取 uid。没有 sessions 表或任何可用于 FQL 的表(可用表列在 here)。

    但是,对于多查询,我相当肯定 this page 准确地描述了您需要做的事情,但我会按照我会做的方式将一些代码放在一起。

    如果它是一个 PHP 应用程序,并且我想做这个服务器端,我会创建几个 JSON 格式的字符串并将它们作为查询发送,如下所示:

    $fql= '{
     "userinfo":"SELECT uid FROM user_standard_info WHERE first_name=\'zombat\'",
     "friends":"SELECT uid2 FROM friend WHERE uid1 IN (SELECT uid FROM #userinfo)}"
    }';
    $res = $facebook->api_client->fql_multiquery($fql);
    
    print_r($res['userinfo']);
    print_r($res['friends']);
    

    这应该会生成查询结果的转储。

    假设您可以从fb_sig_user 参数中获得当前的uid(您应该这样做),那么您的问题应该通过以下方式解决:

    $fql= '{
     "friends":"SELECT uid2 FROM friend WHERE uid1='.$your_uid.',"
     "friendinfo":"SELECT * FROM standard_user_info WHERE uid IN (SELECT uid2 FROM #friends)"
    }';
    $res = $facebook->api_client->fql_multiquery($fql);
    

    注意:您可能需要仔细查看您尝试执行的一些查询。许多表,例如friend,只有在您与登录用户打交道时才能使用。

    【讨论】:

      【解决方案2】:

      me() 函数以 FQL 形式返回您的用户 ID。

      要获取好友列表,您可以使用:

      SELECT uid, first_name, last_name
      FROM user
      WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
      

      您可以在此处找到相关文档:http://developers.facebook.com/docs/reference/fql/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-03
        • 1970-01-01
        相关资源
        最近更新 更多