当您在流表格中查找粉丝页面墙内容时,您会在粉丝页面墙上找到提及该页面的内容,还会在自己的墙上发布提及该页面的粉丝。有没有办法在流响应中区分这两种类型?
例如,这是一个粉丝页面http://www.facebook.com/signalhq,它会从在自己的帖子中标记了该页面的用户中提取帖子
http://www.facebook.com/jeff.judge/posts/10150356144351153
有没有办法将上述帖子与该墙上的其他帖子区分开来?我在fql stream api doc中找不到任何东西来实现这个目的。
答案 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/
编辑:澄清您应该看到的结果:
页面墙上的页面发布:
用户在页面墙上的帖子:
用户在自己的墙上发布标记页面的帖子:
希望这可以帮助你区分?
答案 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,则用户会提及该页面。