如何使用名称FQL获取朋友UID

时间:2013-07-02 02:45:12

标签: php facebook-php-sdk facebook-fql

我正在尝试使用该名称获取朋友的用户ID。来自SQl背景我觉得它就像[Select] [UID] [From] friend [Where] Name = "friends name".

所以我的查询是

$fql_query_url = 'https://graph.facebook.com/'
    . 'fql?q=SELECT+uid+FROM+friend+WHERE+name=Friends Name'
    . '&access_token=' . $access_token;

我的逻辑错误是什么?

1 个答案:

答案 0 :(得分:1)

而不是friend FQL table,您应该使用user table根据他/她的名字检索您朋友的uid。这是因为friend表只存储了两个user之间的关系,而不是关于它们的详细信息。

所以你的查询应该如下

SELECT uid 
FROM user
where name = "Name" and uid in (select uid2 from friend where uid1 = me())

由于name字段不可编入索引,我们需要使用user表中的uid2来过滤friend表中的用户。

修改

您的查询需要更改为以下工作

$fql_query_url = 'https://graph.facebook.com/fql?'
     . 'q=SELECT+uid+FROM+user+where+name+%3D+%27User+Name%27+'
         . 'and+uid+in+%28select+uid2+from+friend+where+uid1+%3D+me%28%29%29'
         . '&access_token=' . $access_token;