Facebook API - количество постов и комментариев на стене по дням

Итак, моя цель была, казалось бы, простой — получить количество постов на стене за день. Я использовал API-интерфейс графа insights/page_wall_posts, пока не понял, что счетчики неверны. Есть ли лучшая статистика для использования? Я видел в документации FQL, что page_wall_post is depreciated, но там не было сказано, было ли оно заменено чем-то другим.

Мои вопросы:

  1. Как я могу получить количество всех постов на стене за день?
  2. Точно так же, как я могу получить общее количество комментариев на стене за день?

У меня есть код, который анализирует результаты, но когда я вчера тестировал с помощью обозревателя графиков Я увидел, что возвращаемые данные далеки от фактической активности на Facebook.


person Nix    schedule 15.01.2012    source источник
comment
просто примечание: аналитика не является оперативными данными — вы не сможете увидеть данные, которые были добавлены сегодня. Если нет, то я ошибаюсь, я считаю, что задержка составляет 48 часов (может быть, даже больше).   -  person Lix    schedule 15.01.2012


Ответы (2)


Я также видел некоторые несоответствия между данными, доступными для Graph, и тем, что на самом деле видно через пользовательский интерфейс Facebook.

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

Вы можете запускать FQL через API графа (и даже из обозревателя API графа). Пытаться

fql?q=SELECT post_id, comments, message FROM stream WHERE source_id=me() AND created_time > 1326064184 AND created_time < 1326634407

Из этого запроса вы получаете элементы потока для пользователя, а также объект комментариев для каждого из этих сообщений.

Если вы хотите получить количество комментариев к сообщениям пользователя за определенный период времени, вы можете использовать: fql?q=SELECT object_id, text, time FROM comment WHERE post_id IN (SELECT post_id FROM stream WHERE source_id=me()) AND time > 1326064184 AND time < 1326634407

person DMCS    schedule 15.01.2012
comment
Радость ... разве это не противоречит цели использования API-интерфейса графа? - person Nix; 16.01.2012
comment
API не побежден. Это просто правила, по которым мы должны играть, пока копаемся в песочнице Facebook. - person DMCS; 16.01.2012
comment
Я попытался протестировать ваше решение (которое не ответило на мой вопрос, потому что я говорю о сообщениях на СТРАНИЦЕ), и оно не работало так, как ожидалось, но как только я получу действительное решение, используя fql, если ваш ответ помог, я обязательно дам вы кредит. Спасибо за учебник по вопросам ответов, не совсем уверен, что знал, как это работает. - Никс 19 минут назад - person Nix; 05.02.2012
comment
Поток содержит посты как пользователей, так и страниц. Использование маркера доступа к странице даст вам правильный source_id=me(). Иногда ответ не обязательно должен быть прямым решением, а скорее должен помочь спрашивающему в правильном направлении. Удачного кодирования! - person DMCS; 06.02.2012

Итак, ответ на мой вопрос - следующий лучший способ получить эти данные с помощью:

insights/page_stories_by_story_type . Он вернет что-то вроде:

"data": [
{
  "id": "<THE ID>/insights/page_stories_by_story_type/day", 
  "name": "page_stories_by_story_type", 
  "period": "day", 
  "values": [
    {
      "value": {
        "fan": 10, 
        "page post": 8, 
        "user post": 3, 
        "checkin": 1
      }, 
      "end_time": "2012-02-05T08:00:00+0000"
    }, 

Значение page_post будет включать пост+комментарии. Что является лучшим, что я мог найти, используя аналитические данные.

person Nix    schedule 09.02.2012