Facebook API: получить все фотографии профиля
Каков наилучший способ получить ВСЕ фотографии профиля от данного пользователя? Какие разрешения мне нужны?
Я знаю, что могу получить доступ к основному профилю pic с помощью https://graph.facebook.com/[uid]/picture
, но как мне получить весь альбом?
Ответы
Ответ 1
как мне получить весь альбом?
Вам нужно https://graph.facebook.com/[uid]/albums?access_token=[AUTH_TOKEN]
получить массив JSON всех альбомов пользователя.
Здесь вы получите три важные вещи id
- id альбома, name
- название альбома и type
- тип альбома.
Какие разрешения мне нужны?
Требуется разрешение user_photos
см. здесь
Каков наилучший способ получить ВСЕ изображения профиля от данного пользователя?
Фотографии профиля находятся в альбоме "Фотографии профиля". Чтобы попасть в профиль альбома, вам нужно посмотреть в массив альбомов (как уже упоминалось ранее), повторить набор результатов JSON, пока вы не получите альбом с именем = Profile Pictures
и type = profile
. Получите id
этого объекта. Это альбом с изображениями профиля.
Теперь вы можете получить к нему доступ, похожий на доступ к любому другому альбому. То есть https://graph.facebook.com/[ALBUM_ID]/photos?access_token=[AUTH_TOKEN]
отобразит все фотографии профиля пользователя, когда-либо загруженного.
Надеюсь, что это поможет.
refer: http://developers.facebook.com/docs/reference/api/
Ответ 2
Вы можете передать "limit = 0", чтобы избежать пейджинга в целом, и вы получаете все фотографии за один вызов.
Ответ 3
Чтобы получить все фотографии профиля, во-первых, вам нужно получить список всех альбомов, но если количество альбомов больше 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));
Ответ 4
Есть какой-то способ получить альбомы публичных пользователей без каких-либо отношений. Например, я не являюсь другом пользователя "foo", но мне нужны его фотографии. Я могу видеть его фотографии в пользовательском интерфейсе Facebook, но я не могу пройти через график.
Я использую explorer из facebook со всеми разрешениями, и я получаю всегда пустой JSON.
Есть какой-то способ получить фотографии, которые я вижу в пользовательском интерфейсе? Эти фотографии являются общедоступными.
Реальный пример:
Пользовательский интерфейс:
https://www.facebook.com/sonia.milan.9/photos Вы можете увидеть все его фотографии.
Использование графического API:
sonia.milan.9/альбомы
Возврат:
{
"data": [
]
}
Ответ 5
Вы используете пейджинг и смещение, чтобы получить следующий 5 или изменить лимит на что угодно.
Ответ 6
Мы не получим непосредственно все фотографии профиля, сначала нам нужно получить все альбомы, используя ниже URL
https://graph.facebook.com/v2.10/
472802896428726/альбомы access_token = {access_token} &? Поля = Id, имя, cover_photo, граф, из, тип
Фильтровать массив, используя условие, в котором type = profile и name = Profile Profile
затем используйте идентификатор альбома, чтобы получить фотографии, используя ниже URL
https://graph.facebook.com/v2.10/
124683854573967/фотографии access_token = {access_token} &? = Поля кода, источник