fql?q = SELECT friend_count FROM user WHERE uid ='id'
我使用上面的fql查询来获取朋友的数量。它已经为我工作了很长一段时间。 [Javascript SDK]
但现在它提供了以下错误消息,
{“error”:{“message”:“(#604)您的语句不可索引.WHERE 子句必须包含可索引的列。这些列标有 *在http://developers.facebook.com/docs/reference/fql“链接的表格中, “类型”: “OAuthException”}}
我尝试复制此查询并将其粘贴到图形api资源管理器工具中,它完全正常。
我已检查user的FQL参考,uid仍然是可转换列。
我已经检查了博客中的更改,但没有提到有关fql的内容。 知道为什么这不再适用了吗?还有其他方法让这个工作吗?
答案 0 :(得分:4)
您可能有一个错误的访问令牌,或者您的查询可能在数字用户ID值周围有引号。
https://graph.facebook.com/fql?q=SELECT friend_count FROM user WHERE uid=me()
{ “数据”:[ { “friend_count”:NNNN } ] }
https://graph.facebook.com/fql?q=SELECT friend_count FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me())
{ “数据”:[ { “friend_count”:421 }, { “friend_count”:219 }, { “friend_count”:59 }, { “friend_count”:239 }, { “friend_count”:235 }, { “friend_count”:986 },
修改强>
根据您在下面分享的代码链接,这里有一种方法可以正确编码fql url。
var q = 'fql?q=' + escape('SELECT friend_count FROM user WHERE uid=100001516911824');
FB.api(q, Log.info.bind('fql callback'));
答案 1 :(得分:0)
var query = string.Format("SELECT friend_count FROM user WHERE uid=me()");
dynamic parameters = new ExpandoObject();
parameters.q = query;
object data2 = fbClient.Get("/fql", parameters);