2011-02-20 4 views
23

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

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

ответ

51

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

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

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

Какие разрешения необходимы?

Разрешение требуется user_photossee here

Что является лучшим способом, чтобы получить фотографии из данного пользователя ALL профиля?

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

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

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

относятся: http://developers.facebook.com/docs/reference/api/

+1

Возможно ли им изменить имя профиля фотографии альбома? Можно ли доверять названию альбома? –

+2

полагайтесь на 'type'. имя не редактируется для альбома AFAIK. – Nishant

+2

@Nishant, если есть много фотографий профиля (например, 100 фотографий), как бы вы получили ВСЕ их, используя 'https://graph.facebook.com/ [ALBUM_ID]/photos? Access_token = [AUTH_TOKEN]' ? Потому что в настоящее время он останавливается после 25-го фото – NateHill

0

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

9

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

5

Чтобы получить все фотографии профиля, вам необходимо получить список всех альбомов, но если количество альбомов больше 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)); 
1

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

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

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

UI от Facebook: https://www.facebook.com/sonia.milan.9/photos Вы можете увидеть все свои фотографии.

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

{ 
    "data": [ 
    ] 
} 
+0

Извините, этот контент сейчас недоступен по ссылке –

1

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

https://graph.facebook.com/v2.10/ 472802896428726/albums?access_token={access_token}&fields=id,name,cover_photo,count,from,type

Фильтр с использованием условия, где Тип = профиль и имя = Фотографии профиля затем используйте идентификатор альбома для получить фотографии с помощью ниже URL

https://graph.facebook.com/v2.10/ 124683854573967/photos?access_token={access_token}&fields=id,source

Смежные вопросы