2015-11-06 248 views
0

我剛剛升級到圖形api 2.5和PHP SDK 5.0,它似乎是你的頁面通知已經改變的方式。Facebook圖形API - 獲取頁面通知

在過去,我可以打電話:

/{PAGE_ID} /通知

,並得到這樣的迴應:

{ 
    "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

,但它只是返回相同的信息。

有沒有辦法在圖表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); 
} 

回答

1

自V2.4,你必須指定你想獲得返回的字段:

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

這是一個比較複雜一點與子文檔,但我相信這應該工作:

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

「聲明性領域」是什麼,是:https://developers.facebook.com/docs/apps/changelog#v2_4

+0

你是對的,解決它。有沒有辦法看到有哪些可能的領域?通常情況下,圖表瀏覽器允許您在左側輸入一個字段,但不能輸入通知 – robjbrain

+1

api參考告訴您確切的字段:https://developers.facebook.com/docs/graph-api/reference – luschn

+0

乾杯,被文檔弄糊塗了,現在很合理 – robjbrain