获得Facebook用户的第一条评论

时间:2013-03-04 19:58:32

标签: facebook-graph-api facebook-fql

我正在尝试将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.

如何解决此问题?

谢谢。

2 个答案:

答案 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表。