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

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

我在使用 Facebook api 时遇到了一些问题。

我正在执行一个非常简单的 FQL 请求来获取像这样的页面流:

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

效果很好。但是,当我在可口可乐或星巴克等“大页面”上执行相同的请求时,所有流帖子的“类型”、“点赞数”和“评论数”均为空。

我实在不明白为什么。我正在考虑一个带有国家/地区代码错误的“全局页面”,但我找不到这方面的信息。

有什么想法吗?

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

starbucks?fields=global_brand_children.username,global_brand_parent_page

那么,知道为什么我的第一个请求在获取流内容时返回空信息吗?

最佳答案

“大页面”没有任何问题。只是“大页面”有很多粉丝的帖子和分享。事实上,stream 表提供了页面的所有事件。

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

您可能会得到 null 作为 like 计数 的原因是您遇到了包含 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 个结果中检查哪些结果的 actor_id40796308305

回答? 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/

关于facebook - 从全局页面获取 Facebook 页面的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15295076/

相关文章:

facebook - Oauth 2 : Is access_token a unique key for User?

Facebook 分享。更改 "say something more about this",同一页面上的多个按钮

facebook - Xamarin iOS : Facebook logout issue

未找到 Facebook SDK JS

php - facebook graph api 从 2.2 到 2.3 不工作

Facebook - “IN” 子句中的最大参数数量?

facebook - 检查用户是否喜欢 Facebook Canvas 应用程序

ios - 在 iOS 中获取其他 Facebook 用户的个人资料图片

facebook-graph-api - 为什么将分页游标或 id 值编码为字符串是一种常见做法?

javascript - 关联不同表中数据的最简单、最有效的方法,无需关联