从公共粉丝页面生成帖子ID列表

时间:2013-04-01 12:43:57

标签: facebook facebook-graph-api

如何枚举公开的帖子?例如。即使没有登录fb,你可以在fb.com/pepsi页面看到很长的帖子列表如何检索它们?

我正在尝试找到一种方法来从粉丝页面的墙上枚举帖子ID并逐个循环浏览它们。因为我只知道百事可乐页面的ID,所以我从那里开始。我希望在将它们枚举为列表后循环遍历每个帖子ID。非常感谢。

1 个答案:

答案 0 :(得分:1)

嗯,你仍然可以在不登录Facebook的情况下查询Graph API,但是你需要一个访问令牌。您只需创建一个应用程序并使用APP_ID|APP_SECRET作为应用程序访问令牌。我认为这应该足以只处理公共职位。

https://graph.facebook.com/56381779049/posts?access_token=XXX的调用将返回该页面上/的公共内容的JSON数据。

{
   "data": [
      {
         "id": "56381779049_10151643119694050",
         "from": {
            "category": "Food/beverages",
            "name": "Pepsi",
            "id": "56381779049"
         },
         "story": "\"Thanks for sharing Bobby! Love...\" on Bobby Kirchner's photo.",
         ...
         "created_time": "2013-03-29T21:35:41+0000",
         "updated_time": "2013-03-29T21:35:41+0000"
      },
      {
         "id": "56381779049_10151639464904050",
         "from": {
            "category": "Food/beverages",
            "name": "Pepsi",
            "id": "56381779049"
         },
         "story": "\"Hi James, sorry to hear that....\" on James Kraus II's photo.",
         ...
         "created_time": "2013-03-27T18:23:49+0000",
         "updated_time": "2013-03-27T18:23:49+0000"
      },
...

根据您使用的语言,迭代所有数据并将其转换为更容易执行分析的结构将非常简单。例如,在PHP中,有一个json_decode()函数,它将JSON数据转换为普通的PHP数组。

请注意,每当您查询Facebook API并且要返回相对大量的数据时,每个请求中都会有一个分页机制。它看起来像这样 -

"paging": {
  "previous": "https://graph.facebook.com/56381779049/posts?access_token=XXX&limit=25&since=1364592941&__previous=1",
  "next": "https://graph.facebook.com/56381779049/posts?access_token=XXX&limit=25&until=1362582226"
}