Facebook Graph API - Как избежать ограничений на запросы при доступе к фотографиям пользователя? - PullRequest
0 голосов
/ 12 сентября 2018

Мне нужно получить пользовательские фотографии и альбомы с помощью API Graph Facebook.

Насколько я понимаю (при чтении документов), это двухэтапная процедура: 1. извлечение идентификатора для каждой фотографии с края photos, 2. использование возвращенного массива идентификаторов, извлечение отдельных узлов фотографий.

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

Может быть, есть способ получить все фотографии одновременно (или с меньшим количеством запросов), чтобы избежать ограничений на количество запросов?

пример реализации:

  ...

  var photos = [];

  function fetchPhotos(){
    fetch('https://graph.facebook.com/v3.1/me/photos?type=uploaded&access_token=' + accesstoken, {
      method: 'GET'
    })
    .then(photos => photos.json())
    .catch(error => console.error('Error:', error))
    .then(photos => {

      this.fetchPhoto(photos);

    });
  }

  function fetchPhoto(photos){
    for(var i=0; i < photos.data.length; i++){
      fetch('https://graph.facebook.com/v3.1/' + photos.data[i].id + '?fields=link,width,height&access_token=' + accesstoken, {
        method: 'GET'
      })
      .then(photo => photo.json())
      .catch(error => console.error('Error:', error))
      .then(photo => {

        photos.push(photo);

      });
    }
  }

  ...

Спасибо!

1 Ответ

0 голосов
/ 12 сентября 2018

Уже можно получить список со всеми полями одним вызовом:

https://graph.facebook.com/v3.1/me/photos?fields=link,width,height&access_token=...

Примечание: если это код клиента, почему бы не использовать официальный JS SDK? Таким образом, вам не нужно иметь дело с токеном доступа, он добавляется автоматически.

...