重新共享状态的信息

时间:2013-06-28 20:34:50

标签: facebook-graph-api

我正在使用Facebook图形api几天。我试图提取用户的状态和转发的信息(如果有的话)。我可以使用 fields = id,name,statuses 查询轻松找到用户的状态。但我找不到任何有关重新分享的信息。我找到了一个状态 sharedposts 的字段。但无法理解它究竟做了什么。任何人都可以告诉我如何收集有关转发的信息(谁转发,转发,转发地点时)。我使用了user_status访问令牌。

3 个答案:

答案 0 :(得分:10)

sharedposts 字段适用于状态ID。例如,状态标识10151794781777494来自 TheKrazyCouponLady 的状态更新,该状态已共享4次。这个查询:

/10151794781777494?fields=sharedposts

将返回有关共享它的用户的所有信息。如果要将返回的字段限制为共享者的名称和ID,以及共享的时间和位置,则可以执行以下操作:

/10151794781777494?fields=sharedposts.fields(from,created_time,place)

虽然我预计大部分时间都不会有任何位置数据。

要首先查找状态ID,您只需查询特定用户的状态字段即可。再次,以 TheKrazyCouponLady (uid 255919387493)为例:

/255919387493?fields=statuses

只获取ID:

/255919387493?fields=statuses.fields(id)

作为替代方案,您可能需要考虑查询用户的帖子。使用帖子的好处是,您可以获取该查询中每个帖子的共享计数。

/255919387493?fields=posts.fields(id,shares)

如果帖子上的共享计数为零,那么显然不需要运行另一个查询来检索已共享该帖子的用户。

使用帖子的缺点是帖子ID与状态ID略有不同。你会看到看起来像这样的ID:

255919387493_10151794781777494

该字符串的前半部分是帖子所有者的用户ID。下半部分是实际状态ID。如果您想查询帖子的 sharedposts 字段,首先必须提取下半部分(状态ID)并将其用于查询。

话虽如此,如果您将状态查询和 sharedposts 查询链接在一起,您实际上可以一次性检索所需的所有信息。例如,像这样:

/255919387493?fields=statuses.fields(id,message,sharedposts.fields(from,created_time,place))

这将返回该用户的每个状态的状态ID和消息文本,以及用户详细信息,为共享每个状态的每个人创建时间和位置。

即使使用分页,这可能是一个相当慢的查询,所以我不确定这是不是一个好主意。值得考虑的是。

答案 1 :(得分:1)

根据API 2.1的新版本和此处的文档 https://developers.facebook.com/docs/graph-api/reference/v2.1/post 有一个名为" sharedposts"

的新边缘

如此处所述https://developers.facebook.com/docs/graph-api/reference/v2.1/object/sharedposts

  

此参考描述了共同的/ sharedposts边缘   多个Graph API节点。结构和操作是相同的   对于每个节点。

     

此边表示共享原始对象的所有帖子   主页。

答案 2 :(得分:0)

如果帖子类型是照片,则共享邮件将返回空,因为该对象与postID不同

/317380948302131_847979698575584                  => Object : 847979378575616

/317380948302131_847979698575584/sharedposts?fields=from,via  

ObjectID将按预期工作

/847979378575616//sharedposts?fields=from,via   

唯一的问题是,如果对象是shared_post,它将显示原始post对象的所有共享,并且不存在via节点。 只是在一段时间内挣扎为什么APi有时只返回共享信息