API-интерфейс Facebook: получать большие изображения в одном запросе

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

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

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

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

Возможно ли это?

Ответ 1

вам не нужно тянуть атрибут "картинка". есть намного более удобный способ, единственное, что вам нужно - это userid, см. пример ниже;

https://graph.facebook.com/user_id/picture?type=large

p.s. тип определяет желаемый размер

plz помните, что используя токен с базовыми разрешениями, /me/friends вернут список друзей только с атрибутами id + name

Ответ 2

Как описано в этой ошибке на Facebook, вы также можете запросить конкретные размеры изображений теперь с помощью нового расширения API ".

Так же:

https://graph.facebook.com/____OBJECT_ID____?fields=picture.type(large)

Ответ 3

Лучший способ получить всех друзей (которые тоже используют приложение тоже, конечно) с правильными размерами изображений - использовать расширение , либо с одним из (квадратный, маленький, нормальный, большой):

/me/friends?fields=picture.type(large)

(изменить: это больше не работает)

... или вы можете указать ширину/высоту:

me/friends?fields=picture.width(100).height(100)

Btw, вы также можете записать его так:

me?fields=friends{picture.type(large)}

Ответ 4

Измените массив полей 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"
      }
   }
}

Ответ 5

Я исследовал Graph API Explorer широко и, наконец, нашел 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

Ответ 7

Хм... Думаю, я нашел решение.

Фактически, in может просто запросить

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-адрес изображения, поэтому, если у кого-то есть лучшее решение, я был бы рад узнать:)

Ответ 8

Вы можете установить размер изображения в пикселях, например:

https://graph.facebook.com/v2.8/me?fields=id,name,picture.width(500).height(500)

Ответ 9

В URL-адресах изображений, найденных в ответах Графа (http://photos-c.ak.fbcdn.net/ "), просто замените значение по умолчанию" _s.jpg "на" _n.jpg "(? нормальный размер) или" _b.jpg "(? большой размер) или" _t.jpg" (миниатюра).

Hacakable URLs/REST API улучшают работу Интернета.

Ответ 10

От v2.7, /<picture-id>?fields=images предоставит вам список с разным размером изображений, первый элемент будет полноразмерным изображением.

Я не знаю ни одного решения для нескольких изображений одновременно.

Ответ 11

Я думаю, что на данный момент единственным способом получить большие фотографии друзей является использование 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.

Ответ 12

У меня такая же проблема, но я попытался решить эту проблему. он возвращает большое изображение. Это не идеальное решение, но вы можете попробовать это.

https://graph.facebook.com/v2.0/OBJECT_ID/picture?access_token=XXXXX

Ответ 13

попытайтесь изменить размер изображения, изменив размер пикселя с 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

Ответ 14

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

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

Ответ 15

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

Ответ 16

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

Ответ 17

пользователи rest-fb (квадратное изображение, большее разрешение): Подключение myFriends = fbClient.fetchConnection( "me/friends", User.class, Parameter.with( "поля", "public_profile, email, first_name, last_name, gender, picture.width(100).height(100)" ));