Facebook Graph API - 获取页面通知

Facebook Graph API - Get Page Notifications

我刚刚升级到 graph api 2.5 和 PHP SDK 5.0,您获取页面通知的方式似乎已经改变。

以前我可以打电话:

/{page_id}/notifications

并得到这样的回复:

{
  "id": "notif_12345_12345",
  "from": {
    "name": "John Doe",
    "id": "12345"
  },
  "to": {
    "name": "Page Name",
    "category": "Community",
    "id": "12345"
  },
  "created_time": "2015-11-01T16:23:38+0000",
  "updated_time": "2015-11-01T18:10:26+0000",
  "title": "John Doe and Jane Doe commented on a link you shared.",
  "link": "http://www.facebook.com/page/posts/12345?comment_id=12345"
}

完美,正是我想要的。但是在 2.5 中我得到:

{
  "data": [
    {
      "to": {
        "name": "Page Name",
        "id": "12345"
      },
      "id": "notif_12345_12345"
    },
    {
      "to": {
        "name": "Page Name",
        "id": "12345"
      },
      "id": "notif_12345_67890"
    }
}

我不知道该怎么办?我试过请求:

/notif_12345_67890

但只是 returns 相同的信息。

这几天有图api的通知详情吗?

为了完整起见,这就是我使用 PHP 所做的,尽管也可以在图形浏览器中测试响应。

$sdk = new \Facebook\Facebook([
    'app_id' => $app_id,
    'app_secret' => $app_secret,
    'default_graph_version' => 'v2.5',
]);

$response = $sdk->get($page_id.'/notifications', $access_token);

$graphEdge = $response->getGraphEdge();

// Iterate over all the GraphNode's returned from the edge
foreach ($graphEdge as $graphNode) {
    var_dump($graphNode);
}

从 v2.4 开始,您必须指定要返回的字段:

/{page_id}/notifications?fields=name,title,link

子文档有点复杂,但我相信这应该可行:

/{page_id}/notifications?fields=name,title,link,to{name,category}

"Declarative Fields"就是那个:https://developers.facebook.com/docs/apps/changelog#v2_4