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


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.