我对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
那么,任何想法为什么我的第一个请求在获取流内容时返回空信息?
答案 0 :(得分:3)
“大页面”没有错。只有那些“大页面”才能拥有粉丝的大量帖子和分享。实际上,stream
表提供了页面的所有活动。
当内容来自用户时,流活动的type
将为null
。当它来自页面所有者时,它将是一个int。请参阅https://developers.facebook.com/docs/reference/fql/stream/上type
字段的说明。
您可能会null
作为like count
的原因是您遇到的帖子can_like
或can_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个结果中检查哪些结果40796308305
为actor_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/