Facebook API: Получить все картинки профиля - PullRequest
23 голосов
/ 20 февраля 2011

Каков наилучший способ получить ВСЕ фотографии из профиля данного пользователя?Какие разрешения мне нужны?

Я знаю, что могу получить доступ к главной фотографии профиля, используя https://graph.facebook.com/[uid]/picture, но как мне получить весь альбом?

Ответы [ 6 ]

53 голосов
/ 20 февраля 2011

как мне получить весь альбом?

Вам нужно https://graph.facebook.com/[uid]/albums?access_token=[AUTH_TOKEN], чтобы получить JSON-массив всех альбомов пользователя.

Здесь вы получите три важные вещи id - идентификатор альбома, name - название альбома и type - тип альбома.

Какие разрешения мне нужны?

Требуемое разрешение user_photos см. Здесь

Каков наилучший способ получить ВСЕ фотографии из профиля данного пользователя?

Картинки профиля находятся в альбоме "Картинки профиля". Чтобы попасть в альбом профиля, вам нужно просмотреть массив альбомов (как упоминалось ранее), перебирать набор результатов JSON, пока не получите альбом с именем = Profile Pictures и типом = profile. Получите id этого объекта. Это альбом фотографий профиля .

Теперь вы можете получить к нему доступ аналогично доступу к любому другому альбому. Таким образом, https://graph.facebook.com/[ALBUM_ID]/photos?access_token=[AUTH_TOKEN] это перечислит все изображения профиля пользователя, когда-либо загруженного.

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

см .: http://developers.facebook.com/docs/reference/api/

9 голосов
/ 13 марта 2012

Вы можете передать «limit = 0», чтобы вообще избежать подкачки страниц, и вы получите все фотографии за один звонок.

5 голосов
/ 30 марта 2012

Чтобы получить все фотографии профиля, сначала вам нужно получить список всех альбомов, но если количество альбомов больше 24, вы не получите остальные и, вероятно, не получите альбом фотографий профиля. Для этого вам нужно передать limit=0, чтобы получить URL альбома.

Вот пример кода:

$tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=$yourAppId&redirect_uri=$yourRedirectUrl 
                &client_secret=$yourAppSecret&code={$_GET["code"]}";

$accessToken = file_get_contents($tokenUrl);

$extAlbumUrl = "https://graph.facebook.com/me/albums?$accessToken&limit=0";

$albums = json_decode(file_get_contents($extAlbumUrl)); 
2 голосов
/ 28 августа 2017

Сначала мы не получим все фотографии профиля, нам нужно получить все альбомы, используя указанный ниже URL.

https://graph.facebook.com/v2.10/ 472802896428726 / album? Access_token = {access_token} & fields = id, name, cover_photo, count, с, введите

Фильтровать массив, используя условие, где type = profile и name = Profile Pictures , а затем использовать идентификатор альбома для получения фотографий, используя приведенный ниже URL

https://graph.facebook.com/v2.10/ 124683854573967 / photos? Access_token = {access_token} & fields = id, источник

1 голос
/ 19 июня 2012

Есть какой-то способ получить альбомы публичных пользователей без какого-либо отношения.Например, я не дружу с пользователем "foo", но хочу его фотографии.Я могу видеть его фотографии в пользовательском интерфейсе Facebook, но не могу просмотреть график.

Я использую проводник из Facebook со всеми разрешениями и всегда получаю пустой JSON.Есть какой-нибудь способ получить фотографии, которые я вижу в пользовательском интерфейсе?Эти фотографии являются общедоступными.

Реальный пример:

Пользовательский интерфейс с Facebook: https://www.facebook.com/sonia.milan.9/photos Вы можете видеть все его фотографии.

Использование API графа: sonia.milan.9 / альбомы Возвращение:

{
  "data": [
  ]
}
0 голосов
/ 07 декабря 2011

Вы используете пейджинг и смещение, чтобы получить следующие 5 или изменить предел на любое другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...