Получить изображение профиля пользователя по идентификатору


123

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

заранее спасибо


Ответы:


295

http://graph.facebook.com/ "+ facebookId +" / picture? type = square Например: http://graph.facebook.com/67563683055/picture?type=square

Кроме «квадрата», есть еще и другие размеры. См. Документы .


31
Для всех, кому нужна ссылка на документы: developers.facebook.com/docs/graph-api/reference/user/picture
Фрэнки Джарретт

33
Лучше всего взглянуть на документы, потому что в них есть и все другие варианты. Например, если вам нужно большое квадратное изображение (поскольку квадрат по умолчанию маленький), вы должны использовать https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
sudo

2
есть ли способ просто запросить URL-адрес изображения, а не само изображение? Хотел бы загрузить изображение на интерфейс, а не через сервер, если это возможно,
Александр Миллс

1
Надеюсь, это избавит кого-то от лишнего шага в поиске идентификатора профиля - findmyfbid.com
jarmerson

3
используйте redirect = 0, чтобы получить описание JSON (включая URL) вместо самого изображения
Илья Денисов

123

Вы можете использовать следующие URL-адреса для получения изображений профиля разных размеров. Не забудьте добавить идентификатор Facebook к URL-адресу.

Фото большого размера https://graph.facebook.com/ {facebookId} / picture? Type = large

Фото среднего размера https://graph.facebook.com/ {facebookId} / picture? Type = normal

Фото маленького размера https://graph.facebook.com/ {facebookId} / picture? Type = small

Квадратное фото https://graph.facebook.com/ {facebookId} / picture? Type = square


2
Вот как я смог узнать свой собственный FacebookId: developers.facebook.com/tools/explorer/…
Райан

39

Чтобы получить наибольший размер изображения

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720) 

или что-нибудь еще, что вам нужно, как размер. Исходя из опыта, type = large - не самый лучший результат, который вы можете получить.


1
также можно передать: graph.facebook.com {userID}? fields = picture.type (large) это полезно, когда у вас есть что-то вроде этого, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (large), как упоминалось в других ответах, вы можете заменить большой на нормальный, маленький, квадратный ...
yajnesh

Разве для этого не нужен токен доступа (в настоящее время)?
Bernoulli IT


13

Это буквально на первой странице документации Graph API .

  • /OBJECT_ID/picture возвращает перенаправление на изображение объекта (в данном случае пользователей)
  • /OBJECT_ID/?fields=picture возвращает URL изображения

Примеры:

<img src="https://graph.facebook.com/4/picture"/> использует перенаправление HTTP 301 на изображение профиля Zuck

https://graph.facebook.com/4?fields=picture возвращает сам URL


1
Увы, его больше нет на домашней странице документации Graph API, теперь он здесь: developers.facebook.com/docs/graph-api/using-graph-api
Igy

3
НЕТ , его нет на первой странице документации Graph API. Вам лучше избегать заявлений о временных ограничениях на SO. Вы знаете ... в те дни все меняется довольно быстро ...
Джанлука Геттини

и, по иронии судьбы, ваш ответ гораздо более полезен с более релевантной информацией, чем страница api графика :-)
Simon_Weaver

6

Здесь этот api позволяет легко получать фотографии профилей в fb, google и twitter.

https://www.avatars.io/

Это API, который возвращает изображение профиля при задании имени пользователя в различных социальных сетях, включая Twitter, Facebook, Instagram и gravatar. В нем есть библиотеки для iOS, Android, Ruby, Node, PHP, Python и JavaScript.


1
Это действительно фантастика! Просто потому, что SO любит, чтобы ссылки описывались более подробно; это API, который возвращает изображение профиля при задании имени пользователя в различных социальных сетях, включая Twitter, Facebook, Instagram и gravatar. В нем есть библиотеки для iOS, Android, Ruby, Node, PHP, Python и JavaScript. Исключительное программное обеспечение. Его можно найти на GitHub .
Ари Купер-Дэвис

3

вы можете получить его, используя этот URL: вы получите изображение HD (максимальный размер)

https://graph.facebook.com/{userID}?fields=picture.width(720).height(720)&redirect=false

не забудьте redirect = false, иначе он вернет ошибку


2

Используйте URL как: https: //graph.facebook.com/ user_id / picture? Type = square в src тега img. тип может быть мелкий, крупный.


2

Для этого вы можете использовать AngularJs. Его функция двусторонней привязки данных найдет решение с минимальными усилиями и меньшим количеством кода.

<div> <input type="text" name="" ng-model="fbid"><br/> <img src="https://graph.facebook.com/{{fbid}}/picture?type=normal"> </div>

Надеюсь, это ответит на ваш вопрос. Примечание: вы также можете использовать другую библиотеку.


1

С помощью Javascript SDK (v2.12 - апрель 2017 г.) вы можете получить подробную информацию о запросе изображения следующим образом:

FB.api("/" + uid + "/picture?redirect=0", function (response) {
  console.log(response);

  // prints the following:
  //data: {
  //  height: 50
  //  is_silhouette: false
  //  url: "https://lookaside.facebook.com/platform/profilepic/?asid=…&height=50&width=50&ext=…&hash…"
  //  width: 50
  //}

  if (response && !response.error) {
    // change the src attribute of img elements
    [...document.getElementsByClassName('fb-user-img')].forEach(
      i => i.src = response.data.url
    );

    // OR redirect to the URL above
    location.assign(response.data.url);
  }
});

Для получения ответа JSON важен параметр redirectсо значением 0 (ноль), поскольку по умолчанию запрос перенаправляется на изображение. Вы по-прежнему можете добавлять другие параметры в тот же URL. Примеры:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": будет возвращено изображение размером 100x100;
  • "/" + uid + "/picture?redirect=0&type=large": возвращается изображение размером 200x200. Другие возможные значения типа включают: small , normal , album и square .

1

Просто следуйте по ссылке ниже

https://graph.facebook.com/facebook_user_id/picture?type=square

тип может быть нормальным, мелким, средним, большим. Или квадрат (если вы хотите получить квадратное изображение, размер квадрата ограничен 50x50).


2
Если вы хотите получить квадратную картинку, размер квадрата ограничен 50х50.
Рахул Гупта

Для более подробной информации следите за Facebook Graph API developers.facebook.com/docs/graph-api/reference/v3.2/user/…
Рахул Гупта

1

В соответствии с последней версией Facebook API 3.2. Для пользователей вы можете использовать этот общий метод для получения изображения профиля https://graph.facebook.com/v3.2/{user-id}/picture?type=square, вы можете посетите документацию для изображения пользователя здесь . Возможные значения для параметра типа в URL могут быть маленькими, обычными, альбомными, большими, квадратными.

Для групп и страниц изображение профиля недоступно напрямую. Вы должны получить их с помощью токена доступа. Для групп вы должны использовать токен доступа пользователя, а для страниц вы можете использовать как токен доступа пользователя, так и токен доступа к странице.

Вы можете получить изображение профиля группы или страницы, используя общий URL: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

Я надеюсь, что это будет полезно для людей, которые ищут изображение страницы или профиля группы.


Для большинства страниц я получаю изображение профиля страницы без токена доступа, но для некоторых страниц он возвращает изображение вопросительного знака в качестве ответа в формате ниже. {"data": {"is_sil Silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} Есть ключ к разгадке?
xyz

0

Вы можете использовать следующую конечную точку для получения image.jfif вместо jpg:

https://graph.facebook.com/v3.2/{user-id}/picture

Обратите внимание, что вы не сможете увидеть изображение, а только загрузите его.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.