Oauth 604图表API错误为非索引列,即使列是可索引的

时间:2012-03-16 02:54:22

标签: facebook-graph-api facebook-fql oauth-2.0 facebook-oauth

使用Graph API Explorer应用程序,我尝试以下查询: https://developers.facebook.com/tools/explorer?method=GET&path=fql%3Fq%3DSELECT%20uid%20FROM%20page_fan%20WHERE%20page_id%3D '123412341234'

(上面的假身份证,虽然我在查询中使用了真实的身份证)

错误是: 您的陈述不可索引。 WHERE子句必须包含可索引的列。这些列在http://developers.facebook.com/docs/reference/fql

链接的表格中标有*

但是,page_fan表中的uid字段旁边有一个星号,表示它是一个可索引的列。

我在这里做错了什么?

4 个答案:

答案 0 :(得分:1)

@Lucas Dickey:我之前遇到过同样的问题。 甚至 WHERE 中的列都可以索引(标记为*),但是失败并出现如下错误:

{
"error": {
   "message": "Your statement is not indexable. The WHERE clause must contain an indexable   column. Such columns are marked with * in the tables linked from http://developers.facebook.com/docs/reference/fql ", 
   "type": "NoIndexFunctionException", 
   "code": 604
 }
}

我认为这是Graph API Explorer的“错误”。 但是,当我在浏览器中复制并运行时,一切正常(添加查询 access_token ),如下所示:

https://graph.facebook.com/fql?q=SELECT+uid+FROM+page_fan+WHERE+page_id=153453&access_token=CAACEdEose0cBANNkxdpIUuuhPXgbS0M6Tpt0GYgL4Q1p2OgwicLHEzCp7EPPVCB4zMqZA1LvWFyEr9aBhysXS13MYy3ZAZAihO0KvM07KWt8dcDqWry2mdTwhHe1yChDcWMQ54UtKCSEQOrTQuIkWcOjBpswiLhQkDWIHd7PnMvsc0mhI8fLsEz7pylxcXGT

希望它有效。

答案 1 :(得分:0)

WHERE子句中的page_id列未编入索引(并且旁边没有*)。 http://developers.facebook.com/docs/reference/fql/page_fan/

答案 2 :(得分:0)

根据@Jaokim链接上page_fan的索引信息,page_id被部分索引,需要与uid列一起用于完整索引。您可以尝试使用uid字段,或尝试从另一个查询中获取用户ID列表。

来自https://developers.facebook.com/docs/reference/fql/page_fan/

  

此字段可部分索引,并且必须与以下字段一起使用:uid。

答案 3 :(得分:-1)

http://developers.facebook.com/docs/reference/fql/page_admin/

我认为从Facebook页面进行查询会更有效。