Facebook Graph API: получить большие фотографии в одном запросе
в настоящее время я использую Graph API Explorer чтобы сделать некоторые тесты. Это хороший инструмент.
Я хочу получить список друзей пользователя, с именами друзей, документы и фотографии. Поэтому я набираю:
https://graph.facebook.com/me/friends?fields=id,picture,name
но изображение только 50x50, и я хотел бы больше в этом запросе.
это возможно ?
17 ответов:
вам не нужно тянуть атрибут 'picture', хотя. существует гораздо более удобный способ, единственное, что вам нужно, это userid, см. пример ниже;
https://graph.facebook.com/user_id/picture?type=large
p.S. тип определяет размер, который вы хотите
plz имейте в виду, что с помощью токена с базовыми разрешениями, /me/friends вернет список друзей только с атрибутами id+name
как описано в эта ошибка на Facebook вы также можете запросить конкретные размеры изображений теперь через новый API"расширение поля" синтаксис.
вот так:
https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)
лучший способ получить все друзья (которые используют приложение тоже, конечно) с правильными размерами изображения, чтобы использовать расширение поля, либо с одним из тегов размера (квадратный, маленький, нормальный, большой):
/me/friends?fields=picture.type(large)
(edit: это больше не работает)
...или вы можете указать ширину / высоту:
me/friends?fields=picture.width(100).height(100)
Кстати, вы также можете написать это так:
me?fields=friends{picture.type(large)}
изменить массив полей
id,name,picture
доid,name,picture.type(large)
https://graph.facebook.com/v2.8/me?fields=id,name,picture.type(large)&access_token=<the_token>
результат:
{ "id": "130716224073524", "name": "Julian Mann", "picture": { "data": { "is_silhouette": false, "url": "https://scontent.xx.fbcdn.net/v/t1.0-1/p200x200/15032818_133926070419206_3681208703790460208_n.jpg?oh=a288898d87420cdc7ed8db5602bbb520&oe=58CB5D16" } } }
Я исследовал график API-интерфейс проводника широко и, наконец, нашли full_picture
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture
P. S. Я заметил, что full_picture не всегда дает полный размер я хочу. "вложения" делает
https://graph.facebook.com/v2.2/$id/posts?fields=picture,full_picture,attachments
вы также можете попробовать получить изображение, если вы хотите его на основе высоты или ширины
https://graph.facebook.com/user_id/picture?height=
или
https://graph.facebook.com/user_id/picture?width=
значения по умолчанию в пикселях вам просто нужно предоставить значение int
вы можете установить размер изображения в пикселях, как это:
https://graph.facebook.com/v2.8/me?fields=id,name,picture.width(500).height(500)
таким же образом,
type
параметр может быть использован{user-id}/?fields=name,picture.type(large)
тип перечисление{маленький, нормальный, альбом, большой, квадратный}
Хум... Я думаю, что нашел решение.
на самом деле, В может просто запросить
https://graph.facebook.com/me/friends?fields=id,name
согласно http://developers.facebook.com/docs/reference/api/ (раздел "картинки"), url фотографий профиля может быть построен с идентификатором пользователя
например, предполагая, что идентификатор пользователя находится в $id:
"http://graph.facebook.com/$id/picture?type=square" "http://graph.facebook.com/$id/picture?type=small" "http://graph.facebook.com/$id/picture?type=normal" "http://graph.facebook.com/$id/picture?type=large"
но это не окончательный URL-адрес изображения, так что если у кого-то есть лучшее решение, я был бы рад узнать :)
С
v2.7
,/<picture-id>?fields=images
даст вам список с различным размером изображений, первый элемент которого является полноразмерным изображением.Я не знаю никакого решения для нескольких изображений сразу.
в изображениях URL-адрес найден в графе ответов ("http://photos-c.ak.fbcdn.net/ " ones), просто замените значение по умолчанию "_s.jpg" by "_n.jpg" (? нормальный размер) или "_b.jpg" (? большой размер) или "_t.jpg" (миниатюра).
Hacakable URL-адреса/API-интерфейс REST сделать интернет лучше.
пользователи rest-fb (квадратное изображение, большее разрешение.): Подключение myFriends = fbClient.fetchConnection ("me/friends", пользователь.класс, параметр.с ("поля", " public_profile,email,first_name,last_name,gender, picture.ширина(100).высота(100)"));
Я думаю, что на данный момент единственный способ получить большие фотографии друзей-это использовать FQL. Во-первых, вам нужно получить список друзей:
https://graph.facebook.com/me/friends
затем разобрать этот список и извлечь всех друзей
ids
. Когда у вас есть это, просто выполните следующий запрос FQL:SELECT id, url FROM profile_pic WHERE id IN (id1, id2) AND width=200 AND height=200
200
вот только примерный размер, вы можете ввести что угодно. Вы должны получить следующее ответ:{ "data": [ { "id": ..., "url": "https://fbcdn-profile-a.akamaihd.net/..." }, { "id": ..., "url": "https://fbcdn-profile-a.akamaihd.net/..." } ] }
С каждым url-адресом, являющимся ссылкой на изображение 200x200px.
У меня та же проблема, но я попытался решить эту проблему. он возвращает большое изображение. Это не идеальное решение, но вы можете попробовать это.
https://graph.facebook.com/v2.0/OBJECT_ID/picture?access_token=XXXXX
попробуйте изменить размер изображения, изменив размер пикселя из url-адреса в каждом объекте json следующим образом:
например я меняю s480x480 на s720x720
вариант в стиле JS. Просто установите огромную ширину изображения, и вы получите самый большой вариант.
FB.api( '/' + userId, {fields: 'picture.width(2048)'}, function (response) { if (response && !response.error) { console.log(response.picture.data.url); } } );