2015-07-21 1 views
1

Я пытаюсь получить список топ-сообщений Facebook, принадлежащих странице, используя JavaScript Insights API. Однако я не могу найти способ сделать это с помощью всего одного вызова API. я вылил через документацию здесь: https://developers.facebook.com/docs/graph-api/reference/v2.4/insightsКак получить наиболее популярные сообщения на странице Facebook, используя график API Insights (JavaScript)

Если меня не хватает чего-то, не кажется, что будет способ просто получить список популярных должностей и включают в себя взаимодействие/любит/акции/комментарии/и т.д. в результаты. Вы можете получить общую статистику, такую ​​как общее взаимодействие для всех сообщений на странице, но ничего, что ломает ее по почте.

Единственное, что я могу придумать, это использовать API-интерфейс Graph, чтобы получить список сообщений на странице.

/[page-Id]/posts 

И после этого используйте post-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} 

Вы можете играть с FQL непосредственно на Graph API Explorer и если вам нужен идентификатор страницы просто сделать запрос на имя-страницы/и которое должно возвращать имя страницы, и это Идентификатор страницы.

После этого вам необходимо сохранить результаты и отсортировать их по определенной логике и при необходимости в соответствии с вашими потребностями.

Удачи.

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 не объединяет ответы. Каждый вызов возвращается как отдельное свойство ответа, поэтому вам нужно объединить разные показатели в одном объекте перед отображением в пользовательском интерфейсе.

Это работало для меня, надеюсь, это помогает другим с той же проблемой.

ура.

+0

Есть ли способ получить информацию для каждого сообщения на странице без использования пакетных запросов? – G3M

 Смежные вопросы

  • Нет связанных вопросов^_^