Не удается подсчитать количество лайков и комментариев, используя access_token моего собственного зарегистрированного приложения.

Основной вопрос:

Когда я отправил запрос GET для получения данных someID/POSTS, например https://graph.facebook.com/microsoft/posts?fields=comments,likes&limit=1&access_token=, я не могу получить "количество" в полях "Нравится" и "Комментарии", используя токен доступа, сгенерированный моим собственным зарегистрированным приложением на Facebook. , но может получить ожидаемые данные при использовании токена доступа из примеров приложений Facebook, например "HelloFacebookSample".

Эта проблема возникает как в Android, так и в FB Graph API Explorer. Также для устранения возможных причин я использовал те же коды, что и пример FB, под моим зарегистрированным app_id, но снова возникла та же проблема. Таким образом, единственное возможное объяснение, которое я могу придумать, - это какие-то странные вещи с FB app_id, а не с областями разрешений или разными пользователями (я тестировал двух пользователей).

Вот ответы на запрос GET от https://graph.facebook.com/microsoft/posts?fields=likes&limit=1&access_token=:

1.Используя access_token, сгенерированный my app_id:

{
  "data": [
    {
       "id": "20528438720_10151574758413721", 
       "created_time": "2013-07-18T18:41:51+0000", 
       "likes": {
          "data": [
            {
               "id": "701134683", 
               "name": "Someone's name"
            }, 
            {
               "id": "113770258795376", 
               "name": "Someone's name"
            }
            /****and so on****/
        ], 
        "paging": {
         "cursors": {
           "after": "MTAwMDAwNjkxNDMxMTcz", 
           "before": "NzAxMTM0Njgz"
         }, 
         "next": "https://graph.facebook.com/20528438720_10151574758413721/likes?limit=25&after=MTAwMDAwNjkxNDMxMTcz"
       }
     }
   }
  ], 
  "paging": {
    "previous": "https://graph.facebook.com/20528438720/posts?fields=likes&limit=1&since=1374172911", 
    "next": "https://graph.facebook.com/20528438720/posts?fields=likes&limit=1&until=1374172910"
  }
}

2.Используя access_token, сгенерированный примером app_id из FB (здесь он может получить «количество» лайков):

{
  "data": [
      {
        "likes": {
          "data": [
          {
                "name": "Someone's name", 
              "id": "100003531173993"
            }, 
            {
              "name": "Someone's name", 
              "id": "100002299390558"
            }, 
            {
              "name": "Someone's name", 
              "id": "1038509978"
            }, 
            {
              "name": "Someone's name", 
              "id": "1615491698"
            }
          ], 
        "count": 1071
      }, 
      "id": "20528438720_10151574758413721", 
      "created_time": "2013-07-18T18:41:51+0000"
    }
  ], 
  "paging": {
    "previous": "https://graph.facebook.com/20528438720/posts?fields=likes&limit=1&since=1374172911", 
    "next": "https://graph.facebook.com/20528438720/posts?fields=likes&limit=1&until=1374172910"
  }
}

Это действительно сбивало меня с толку в течение нескольких дней, и я провел много поисков, но не смог найти никакой полезной или связанной информации, возможно, из-за моего английского: P. Кто-нибудь еще сталкивался с подобными проблемами?

Спасибо за чтение.

Любая помощь или альтернативное решение приветствуются! (здесь я просто хочу отображать количество лайков в своем приложении)


person JZ.Bin    schedule 18.07.2013    source источник


Ответы (1)


Только что сам нашел решение, все это связано с миграцией FB для критических изменений в октябре 2013 года. Они меняют формат POST_ID/likes, но, вероятно, так как миграция еще не завершена, поэтому есть некоторые несоответствия. Ниже приводится официальное заявление, которое я получил из Facebook Developer Alert.

Формат POST_ID/лайков изменится. Приложения смогут извлекать все лайки для публикации (а не первые 4, как сегодня) с помощью пейджинга. В результате обновления функциональности количество лайков будет перемещено в поле сводки.

Итак, теперь, если вы не видите «количество» в поле «Нравится» или «Комментарии», просто выполните следующие действия:

  1. Отправьте запрос GET, скажем, https://graph.facebook.com/microsoft/posts?fields=likes&limit=1&access_token=, и тогда вы получите POST_ID = "id"
  2. новый запрос GET к https://graph.facebook.com/POST_ID/likes?summary=true&access_token=, тогда вы найдете «total_count» «лайков» в поле «summary».

Надеюсь это поможет!

person JZ.Bin    schedule 22.07.2013
comment
Есть ли способ сделать это массово? Раньше я выполнял вызов API к /?ids=<csv of ids>&fields=likes, но добавление к нему &summary=true ничего не добавляло. - person Noam; 06.10.2013