从全局页面获取Facebook页面的流

时间:2013-03-08 13:28:53

标签: facebook facebook-graph-api facebook-fql fql.multiquery

我对Facebook api有点问题。

我正在做一个非常简单的FQL请求来获取像这样的Page的流:

SELECT post_id, type, likes, comments FROM stream WHERE source_id = X

效果很好。但是,当我在可口可乐或星巴克这样的“大页面”上做同样的请求时,所有流媒体帖子都有一个空的“类型”,“喜欢计数”和“评论计数”。

我真的不明白为什么。我正在考虑一个国家代码错误的“全局网页”,但我无法找到相关信息。

有什么想法吗?

编辑:只是尝试另一个请求来获取页面全局子ID,但看起来像可口可乐和星巴克不使用全局页面系统。

starbucks?fields=global_brand_children.username,global_brand_parent_page

那么,任何想法为什么我的第一个请求在获取流内容时返回空信息?

1 个答案:

答案 0 :(得分:3)

“大页面”没有错。只有那些“大页面”才能拥有粉丝的大量帖子和分享。实际上,stream表提供了页面的所有活动。

当内容来自用户时,流活动的type将为null。当它来自页面所有者时,它将是一个int。请参阅https://developers.facebook.com/docs/reference/fql/stream/type字段的说明。

您可能会null作为like count的原因是您遇到的帖子can_likecan_comment字段设置为false }。这些帖子无法被喜欢或评论,因为它们存在于页面的外部(即在用户时间轴或特定网站上),并且其所有者不允许公开喜欢或评论(即使公开可见) 。如果您要在页面流中找到此类活动,是因为他们在邮件或照片中标记了网页


修改以回答您的第一条评论。

问题:为什么以下查询不回复页面所有者的帖子:

SELECT actor_id, message 
  FROM stream 
 WHERE source_id = 40796308305 
      AND actor_id = 40796308305

让我们看看此查询可以回馈多少结果:

SELECT actor_id, message 
  FROM stream 
 WHERE source_id = 40796308305

好的,we get 17 results。为什么17?我不知道。

当您向请求添加AND actor_id = 40796308305时,它会在这17个结果中检查哪些结果40796308305actor_id

答案? None

因为它只会检查17个第一个结果,所以您必须指明LIMIT

SELECT actor_id, message 
  FROM stream 
 WHERE source_id = 40796308305 
      AND actor_id = 40796308305 
 LIMIT 100

然后你得到what you want

这是Facebook API的精妙之处。记录在这里:https://developers.facebook.com/blog/post/478/