0

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

我该如何解决这个问题?

谢谢你。

4

2 回答 2

1

评论表用于 fb:comments,因此您需要先使用正确的表。这将是状态表。http://developers.facebook.com/docs/reference/fql/status

 SELECT status_id, message, time FROM status WHERE uid=me() ORDER BY time ASC LIMIT 1

如果第一个帖子来自另一个用户怎么办?

然后我们应该使用流表。新闻提要中的第一项,理论上应该在加入日期之后(为什么要在之前显示项目?)这是假设 API 包含新闻提要的所有数据。

所以这将涉及使用、filter_keys 和 created_time

http://developers.facebook.com/docs/reference/fql/stream_filter
http://developers.facebook.com/docs/reference/fql/stream

于 2013-03-05T23:51:51.107 回答
0

带有WHERE子句的 FQL 查询必须包含一个可索引列,如表的文档中所示(它们现在用星号标记,并显示在Supported Base Where Clauses部分中)。

fromid不是可索引的列,因此您的WHERE子句不能只是此列的条件。

我认为不可能通过 Graph API 或 FQL 发现用户何时加入 Facebook。FQLUser没有提供此属性的属性,并且 Graph API 用户模式非常接近该User表。

于 2013-03-05T07:50:45.120 回答