重新共享状态的信息

Dip*_*Dam 1 facebook-graph-api

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

Jam*_*ess 10

sharedposts场适用于状态ID.例如,状态ID 10151794781777494来自TheKrazyCouponLady的状态更新,该状态已被共享4次.这个查询:

/10151794781777494?fields=sharedposts
Run Code Online (Sandbox Code Playgroud)

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

/10151794781777494?fields=sharedposts.fields(from,created_time,place)
Run Code Online (Sandbox Code Playgroud)

虽然我预计大多数时候都不会有任何位置数据.

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

/255919387493?fields=statuses
Run Code Online (Sandbox Code Playgroud)

要获得id:

/255919387493?fields=statuses.fields(id)
Run Code Online (Sandbox Code Playgroud)

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

/255919387493?fields=posts.fields(id,shares)
Run Code Online (Sandbox Code Playgroud)

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

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

255919387493_10151794781777494
Run Code Online (Sandbox Code Playgroud)

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

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

/255919387493?fields=statuses.fields(id,message,sharedposts.fields(from,created_time,place))
Run Code Online (Sandbox Code Playgroud)

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

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