friend_count的FQL查询已停止工作并出错

时间:2012-01-27 11:07:03

标签: facebook-graph-api facebook-javascript-sdk facebook-fql

  

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的内容。 知道为什么这不再适用了吗?还有其他方法让这个工作吗?

2 个答案:

答案 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);