我正在尝试使用该名称获取朋友的用户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;
我的逻辑错误是什么?
答案 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;