如何获取状态更新发布者页面 - Facebook Graph API

时间:2014-04-07 15:42:05

标签: facebook facebook-graph-api


我正在创建一个桌面应用程序,我需要抓取post_id仅由页面本身发布的状态更新(没有照片,视频和其他故事/类型。)我正在使用type参数来执行此操作轻松完成任务。

https://graph.facebook.com/{username or ID of page}/posts?fields=object_id,type&limit=250&access_token={my access token}

提供网址返回包含其类型和帖子ID的帖子列表

My Page Updated a Status
{
 "type": "status",
 "id": "493341197400693_627621933972618",
 "created_time": "2014-04-05T18:31:58+0000"
},

它工作正常,但问题是列表中的一些帖子type=status不是状态更新,它是一个故事,"My Page commented on a photo"

My Page commented on a Photo
{
  "type": "status",
  "id": "493341197400693_626576670743811",
  "created_time": "2014-04-03T11:27:22+0000"
},

如果两个响应的类型都是"Status",如何确认状态更新或故事。 我只是想忽略My Page commented on a photoMy Page Likes a Photo等,任何建议?

抱歉我的英语不好。

2 个答案:

答案 0 :(得分:0)

您可以查找“'消息'领域。状态应该有一条消息'与之相关的领域,而像“我的页面”这样的故事则与照片相关。不应该有一条消息'。这是一些示例PHP代码。

if (array_key_exists("message", $post))
    //is a status

修改图形调用以包含消息,如此。

https://graph.facebook.com/ {页面的用户名或ID} /帖子?fields = object_id,type,message& limit = 250& access_token = {my access token}

答案 1 :(得分:0)

看一下流FQL表。您可以使用字段类型将帖子过滤到比使用Graph API更精细的级别:

https://developers.facebook.com/docs/reference/fql/stream/#columns

摘自文档:

The type of this story. Possible values are:
11 - Group created
12 - Event created
46 - Status update
56 - Post on wall from another user
66 - Note created
80 - Link posted
128 -Video posted
247 - Photos posted
237 - App story
257 - Comment created
272 - App story
285 - Checkin to a place
308 - Post in Group