Facebook Graph API - Получить, как рассчитывать на странице / группы фотографий - PullRequest
13 голосов
/ 08 августа 2011

Я тестировал API графа и столкнулся с проблемой.Как узнать количество фотографий на странице / группе?

Я администратор / создатель группы.При вводе https://developers.facebook.com/tools/explorer/ определенного удостоверения личности с фотографией из этой группы он приносит почти все данные, даже комментарии, но не подсчитывает подобное.Для подобной части требуется (согласно документации) токен доступа, несмотря на тот факт, что любой может получить доступ к этой информации.

Как получить токен доступа моей страницы / группы с необходимыми разрешениями и как использовать его для получения информации.необходимость?

Если возможно, я бы хотел получить JSON с одного адреса, если это возможно.

Ответы [ 4 ]

28 голосов
/ 11 августа 2011

Это возможно со страницей (даже без токена доступа!) И вот как:

Посетите страницу на графике

Получить идентификатор страницы, перейдя по URL страницы:

https://www.facebook.com/pages/platform/19292868552

Число в конце URL-адреса является идентификатором страницы. Возьмите этот идентификатор и используйте его в графическом обозревателе ( здесь ) или просто посетите его напрямую .

Посетить страницу альбома

Теперь добавление альбомов к этому URL даст вам все альбомы, которые есть на странице, включая фотографии на стене:

https://graph.facebook.com/19292868552/albums

Вывод выглядит так:

{
   "data": [
      {
         "id": "10150160810478553",
         "from": {
            "name": "Facebook Platform",
            "category": "Product/service",
            "id": "19292868552"
         },
         "name": "Bringing Operation Developer Love to Europe",
         "description": "Blog post: http://developers.facebook.com/blog/post/479\n\nVideos and presentations uploaded here: http://developers.facebook.com/videos/",
         "location": "Berlin, Paris, London",
         "link": "https://www.facebook.com/album.php?fbid=10150160810478553&id=19292868552&aid=285301",
         "cover_photo": "10150160811078553",
         "count": 32,
         "type": "normal",
         "created_time": "2011-04-06T23:05:44+0000",
         "updated_time": "2011-04-06T23:33:20+0000",
         "comments": {
         ..... etc ....

Выбор альбома

Для каждого объекта в массиве data есть id и name . Используя эти два поля, вы можете выбрать альбом, содержащий фотографии, которые вы хотите. Первый альбом с таким результатом - "Принеси любовь разработчика операций в Европу". Давайте посмотрим на фотографии этого альбома.

Просмотр фотографий

Если вы следовали ответу до этого момента, следующий шаг должен быть довольно очевидным. Используйте id для нужного альбома и добавьте photos к URL-адресу графика:

https://graph.facebook.com/10150160810478553/photos

Просмотр фотографий лайков

Так же, как при выборе альбома, просто используйте идентификатор в выходных данных вышеупомянутого шага и добавьте лайков к URL, чтобы увидеть лайки:

https://graph.facebook.com/10150160813853553/likes

Выход:

{
   "data": [
      {
         "id": "1163036945",
         "name": "Aditya Pn"
      },
      {
         "id": "1555885347",
         "name": "Nadin M\u00f6ller"
      },
      {
         "id": "100001643068103",
         "name": "Umut Ayg\u00fcn"
      },
      {
         "id": "100000165334510",
         "name": "Alessandra Milfont"
      },
      {
         "id": "100001472353494",
         "name": "Sayer Mohammad Naz"
      },
      {
         "id": "1051008973",
         "name": "Jenson Daniel Chambi"
      },
      {
         "id": "100000233515895",
         "name": "Ruby Atiga"
      },

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


Обратите внимание, что все это возможно с помощью Graph Explorer , нажав на идентификаторы в окне вывода и на боковой панели соединений ( за исключением для последнего соединения / лайков, которое будет надеюсь, скоро будет добавлено. Надеюсь, это поможет. Кроме того, вам не нужен токен доступа, чтобы делать все это, потому что страницы общедоступны. Надеюсь, это поможет!

6 голосов
/ 21 февраля 2014

Количество комментариев / лайков можно получить без разбивки на все лайки, используя параметр fields в сочетании с likes.limit(1).summary(true).Например, поисковый API-запрос для пиццы, приведенный ниже, даст вам все общедоступные посты и общее количество их лайков:

https://graph.facebook.com/search?q=pizza&type=post&fields=id,name,likes.limit(1).summary(true)

результаты (усеченные):

{
  "data": [
    {
      "id": "47883936273_659693910762305", 
      "name": "Instagram", 
      "created_time": "2014-02-16T01:15:29+0000", 
      "likes": {
        "data": [
          {
            "id": "100002243084532", 
            "name": "Yvette Martin"
          }
        ], 
        "paging": {
          "cursors": {
            "after": "MTAwMDAyMjQzMDg0NTMy", 
            "before": "MTAwMDAyMjQzMDg0NTMy"
          }, 
          "next": "https://graph.facebook.com/47883936273_659693910762305/likes?limit=1&summary=1&after=MTAwMDAyMjQzMDg0NTMy"
        }, 
        "summary": {
          "total_count": 13682
        }
      }
    }, 
    {
      "id": "136336876521150_314001148754721", 
      "name": "Pizza Box Turns into Plates & Storage Unit!", 
      "created_time": "2014-02-15T21:20:00+0000", 
      "likes": {
        "data": [
          {
            "id": "100005373008864", 
            "name": "Liliana Campoli"
          }
        ], 
        "paging": {
          "cursors": {
            "after": "MTAwMDA1MzczMDA4ODY0", 
            "before": "MTAwMDA1MzczMDA4ODY0"
          }, 
          "next": "https://graph.facebook.com/136336876521150_314001148754721/likes?limit=1&summary=1&after=MTAwMDA1MzczMDA4ODY0"
        }, 
        "summary": {
          "total_count": 2792
        }
      }
    }
1 голос
/ 18 апреля 2014

/ me / feed возвращает поле LIKES

Я использовал решение, в котором просто нахожу количество элементов в массиве, которые отображают LIKES

Object.keys(item.likes.data).length

Это возвращает «длину»объекта - который равен числу лайков.

0 голосов
/ 30 ноября 2012

http://graph.facebook.com/223766074374957

в ответе есть свойство лайков

{
   "name": "Bejeweled Blitz",
   "is_published": true,
   "website": "https://apps.facebook.com/bejeweledblitz/",
   "username": "bejeweledblitz",
   "products": "Bejeweled Blitz\nBejeweled\nPlants vs. Zombies\nPeggle\nZuma\nChuzzle\nBookworm Adventures\n \nFor a complete list, please visit www.popcap.com\n ",
   "about": "We're the award-winning hit, Bejeweled Blitz! The lightning-fast puzzle game where you have just 60-seconds to match as many gems as you can! Start Blitzing now!",
   "general_info": "Speed is the name of the game in Bejeweled Blitz! Bejeweled Blitz is a speedier take on the classic Bejeweled match-3 gem game mechanic. Your goal is to make as many matches as you can in 60-seconds to really make your score soar! But you won't be going it alone! There are special ways to enhance your Bejeweled Blitz game - like Boosts (power-ups like Scrambler, which moves all the gems around the board or +5 seconds, to add 5 seconds more gem-matching time!) and the popular, Rare Gems. Rare Gems are like extra-special power-ups that can REALLY take your game to the next level!",
   "talking_about_count": 22487,
   "category": "App page",
   "id": "223766074374957",
   "link": "https://www.facebook.com/bejeweledblitz",
   "likes": 5796324,
   "cover": {
      "cover_id": 383412771743619,
      "source": "http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash4/s720x720/417018_383412771743619_1056862875_n.jpg",
      "offset_y": 0
   }
}
...