Facebook Graph API: получить большие фотографии в одном запросе


в настоящее время я использую Graph API Explorer чтобы сделать некоторые тесты. Это хороший инструмент.

Я хочу получить список друзей пользователя, с именами друзей, документы и фотографии. Поэтому я набираю:

https://graph.facebook.com/me/friends?fields=id,picture,name

но изображение только 50x50, и я хотел бы больше в этом запросе.

это возможно ?

17 77

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

перед : https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s480x480/10454308_773207849398282_283493808478577207_n.jpg

после : https://fbcdn-sphotos-c-a.akamaihd.net/hphotos-ak-xfp1/t1.0-9/q71/s720x720/10454308_773207849398282_283493808478577207_n.jpg

вариант в стиле JS. Просто установите огромную ширину изображения, и вы получите самый большой вариант.

FB.api(
  '/' + userId,
  {fields: 'picture.width(2048)'},
  function (response) {
    if (response && !response.error) {
      console.log(response.picture.data.url);
    }
  }
);

вы можете использовать full_picture вместо ключа изображения, чтобы получить полноразмерное изображение.

вы можете указать ширину и высоту в своем запросе на Facebook graph api:http://graph.facebook.com/user_id/picture?width=500&heigth=500