2015-07-21 93 views
1

我正在嘗試使用JavaScript Insights API獲取屬於頁面的頂級執行Facebook帖子列表。但是,我似乎無法通過一個API調用找到一種方法。 我傾注了這裏的文檔:https://developers.facebook.com/docs/graph-api/reference/v2.4/insights如何使用圖表API洞察(JavaScript)

除非我錯過了一些東西,似乎沒有辦法簡單地檢索熱門帖子的列表,幷包括參與/像/分享/評論/等在結果。您可以獲得通用統計信息,例如頁面上所有帖子的總體參與度,但不會通過帖子將其分解。

我能想到的唯一的事情就是使用Graph API來獲取頁面的帖子列表。

/[page-Id]/posts 

然後使用後-ID從這些結果檢索特定職位的見解。

/[post-Id]/insights 

這可能會導致我進行大量API調用以獲取所需信息。

我希望有更好的辦法。有什麼建議麼?

回答

1

不幸的是,我還沒有找到一個簡單的方法來從頁面獲得這個頂端的帖子,而無需手動完成。我使用FQL:

select post_id, comment_info.comment_count, like_info.like_count, share_info.share_count from stream where source_id={Page ID} AND author_id = {Page ID} 

您可以在Graph API Explorer 直接玩的FQL,如果你需要的頁面ID只是做了/頁名的請求,並應返回頁面名稱和它的頁面ID。

之後,您需要保存結果並使用一些邏輯進行排序並根據您的需要進行調整。

祝你好運夥計。

4

我想出了一個解決方案,使用批量圖形API調用這個問題,因爲文件的位置:https://developers.facebook.com/docs/graph-api/making-multiple-requests

在我來說,我需要得到的印象,參與,喜歡,評論和分享來自Facebook頁面的每個崗位。爲了達到這個目的,我打了一個類似這樣的電話。

var pageName = 'YourFacebookPage', 
    yourToken = 'YourAccessToken'; 

FB.api('/', 'POST', { 
    access_token: yourToken, 
    batch: 
     [ 
      { 
       method: 'GET', 
       name: 'get-posts', 
       relative_url: pageName + '/posts' 
      }, 
      { 
       method: 'GET', 
       relative_url: '?ids={result=get-posts:$.data.*.id}' 
      }, 
      { 
       method: 'GET', 
       relative_url: pageName + '/insights/post_impressions/lifetime?ids={result=get-posts:$.data.*.id}' 
      }, 
      { 
       method: 'GET', 
       relative_url: pageName + '/insights/post_engaged_users/lifetime?ids={result=get-posts:$.data.*.id}' 
      }, 
      { 
       method: 'GET', 
       relative_url: 'likes?ids={result=get-posts:$.data.*.id}' 
      }, 
      { 
       method: 'GET', 
       relative_url: 'comments?ids={result=get-posts:$.data.*.id}' 
      }, 
      { 
       method: 'GET', 
       relative_url: 'sharedposts?ids={result=get-posts:$.data.*.id}' 
      } 
     ] 
    }, function (response) { 
     console.log(JSON.parse(response[1].body), 'post details'); 
     console.log(JSON.parse(response[2].body), 'impressions'); 
     console.log(JSON.parse(response[3].body), 'engagement'); 
     console.log(JSON.parse(response[4].body), 'likes'); 
     console.log(JSON.parse(response[5].body), 'comments'); 
     console.log(JSON.parse(response[6].body), 'shares'); 
    } 
); 

不幸的是,Facebook沒有合併迴應。每個調用都會作爲響應的獨立屬性返回,因此您需要將不同的度量標準組合到一個對象中,然後才能顯示在UI中。

這對我有效,希望它可以幫助其他同樣的問題。

歡呼聲。

+0

有沒有方法可以在不使用批量請求的情況下檢索頁面中每個帖子的見解? – G3M