区分提到的帖子和帖子在墙上

时间:2011-08-24 19:40:47

标签: api facebook-fql

当您在流表格中查找粉丝页面墙内容时,您会在粉丝页面墙上找到提及该页面的内容,还会在自己的墙上发布提及该页面的粉丝。有没有办法在流响应中区分这两种类型?

例如,这是一个粉丝页面http://www.facebook.com/signalhq,它会从在自己的帖子中标记了该页面的用户中提取帖子

http://www.facebook.com/jeff.judge/posts/10150356144351153

有没有办法将上述帖子与该墙上的其他帖子区分开来?我在fql stream api doc中找不到任何东西来实现这个目的。

3 个答案:

答案 0 :(得分:3)

作为对ifaour帖子的略微修改,您应该运行此FQL查询:

SELECT target_id,post_id,message,actor_id,tagged_ids FROM stream WHERE source_id = PAGEID

target_id字段将允许您知道发布帖子的对象。如果这是用户在自己的墙上发布(并标记页面),那么target_id将不是Page的ID。如果用户在页面墙上发布并在该帖子中标记了页面,则target_id将是页面ID。

在流FQL文档中查看target_id,以明确这一点:https://developers.facebook.com/docs/reference/fql/stream/

编辑:澄清您应该看到的结果:

页面墙上的页面发布:

  • target_id = null
  • actor_id = PAGEID

用户在页面墙上的帖子:

  • target_id = PAGEID
  • actor_id = USERID

用户在自己的墙上发布标记页面的帖子:

  • target_id = null
  • actor_id = USERID

希望这可以帮助你区分?

答案 1 :(得分:0)

当您从Graph-API以JSON格式提取此帖子时,其中还有“from”和“to”JSON对象......

他们应该能够帮助你区分两个帖子

HIH!

答案 2 :(得分:0)

一种简单的方法是检索tagged_ids字段:

SELECT post_id, message, actor_id, tagged_ids FROM stream WHERE source_id = 'PAGE_ID'

这将返回如下内容:

[
  {
    "post_id": "PAGE_ID_255888737767539",
    "message": "PAGE_NAME test",
    "actor_id": MY_ID,
    "tagged_ids": [
      PAGE_ID
    ]
  },
  {
    "post_id": "PAGE_ID_156571787756776",
    "message": "",
    "actor_id": PAGE_ID,
    "tagged_ids": []
  }
]

如果页面ID显示在tagged_ids字段中且actor_id不是页面ID,则用户会提及该页面。