我正在尝试将Facebook API集成到我的网络应用中。我想通过查询最早的评论来检查用户何时加入Facebook:
SELECT text, time FROM comment WHERE fromid= me() ORDER BY time ASC LIMIT 1
然而,我得到错误说:
"message": "Your statement is not indexable. The WHERE clause must contain an indexable column.
如何解决此问题?
谢谢。
答案 0 :(得分:1)
评论表适用于fb:comments,因此您需要先使用正确的表格。这将是 status 表。 http://developers.facebook.com/docs/reference/fql/status
SELECT status_id, message, time FROM status WHERE uid=me() ORDER BY time ASC LIMIT 1
如果第一篇帖子来自其他用户怎么办?
然后我们应该使用流表。理论上,新闻Feed中的第一项应该在加入日期之后(为什么之前显示项目?)这假设API包含新闻源的所有数据。
所以这将涉及使用 streams ,filter_keys和created_time
http://developers.facebook.com/docs/reference/fql/stream_filter
http://developers.facebook.com/docs/reference/fql/stream
答案 1 :(得分:0)
带有WHERE
子句的FQL查询必须包含一个可转位列,如the docs for the table所示(它们现在标有星号,&显示在支持的基础中条款部分)。
fromid
不是可转换列,因此您的WHERE
子句不仅仅是此列的条件。
我认为当用户通过Graph API或FQL加入Facebook时,我们无法发现;没有the FQL User
table的属性给出了这个,& Graph API用户架构非常接近User
表。