0

如何枚举公开的帖子?例如。即使没有登录 fb,您也可以在 fb.com/pepsi 页面上看到一长串帖子 我该如何检索它们?

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

4

1 回答 1

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"
}
于 2013-04-01T13:00:25.840 回答