Obtener foto de perfil de usuario por Id


123

Ahora estoy trabajando en una aplicación web que se basa principalmente en la API gráfica de Facebook. Tengo algunos datos sobre los usuarios, en realidad, los posibles datos públicos disponibles, como el nombre y la identificación. También sé que una foto de perfil es parte de los datos públicos, y me preguntaba cómo podría obtener un enlace directo a una foto de perfil de un usuario solo usando su identificación.

Gracias por adelantado


Respuestas:


295

http://graph.facebook.com/ "+ facebookId +" / picture? type = square Por ejemplo: http://graph.facebook.com/67563683055/picture?type=square

También hay más tamaños además de "cuadrado". Ver los documentos .


31
Para cualquiera que quiera el enlace a los documentos: developers.facebook.com/docs/graph-api/reference/user/picture
Frankie Jarrett

32
Es mejor mirar los documentos porque también tienen todas las otras opciones. Por ejemplo, si desea una imagen cuadrada grande (dado que el valor predeterminado cuadrado es pequeño), debe usarla https://graph.facebook.com/{facebookId}/picture?type=large&width=720&height=720.
sudo

2
¿hay alguna manera de consultar la url de la imagen y no la imagen en sí? Me gustaría cargar la imagen en el front-end, no a través del servidor si es posible
Alexander Mills

1
Afortunadamente, esto le ahorrará a alguien un paso adicional para encontrar su ID de perfil - findmyfbid.com
jarmerson

3
use redirect = 0 para obtener una descripción JSON (incluida la url) en lugar de la imagen en sí misma
Ilya Denisov

123

Puede usar las siguientes URL para obtener diferentes tamaños de imágenes de perfil. Asegúrese de agregar la identificación de Facebook a la URL.

Foto de gran tamaño https://graph.facebook.com/ {facebookId} / picture? Type = large

Foto de tamaño mediano https://graph.facebook.com/ {facebookId} / picture? Type = normal

Foto de tamaño pequeño https://graph.facebook.com/ {facebookId} / picture? Type = small

Foto cuadrada https://graph.facebook.com/ {facebookId} / picture? Type = square


2
Así fue como pude descubrir mi propio FacebookId: developers.facebook.com/tools/explorer/…
Ryan

39

Para obtener el tamaño más grande de la imagen.

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

o cualquier otra cosa que necesites como tamaño. Según la experiencia, type = large no es el resultado más grande que puede obtener.


1
también puede pasar: graph.facebook.com {userID}? fields = picture.type (large) esto es útil cuando tienes algo como esto, String url = " graph.facebook.com/me?fields=id,name,email , picture.type (large) como se menciona en otras respuestas, puede reemplazar grande por normal, pequeño, cuadrado ...
yajnesh

¿No necesita esto un token de acceso (hoy en día)?
Bernoulli IT


13

Esto está literalmente en la portada de la documentación de Graph API .

  • /OBJECT_ID/picture devuelve una redirección a la imagen del objeto (en este caso, los usuarios)
  • /OBJECT_ID/?fields=picture devuelve la URL de la imagen

Ejemplos:

<img src="https://graph.facebook.com/4/picture"/> utiliza una redirección HTTP 301 a la foto de perfil de Zuck

https://graph.facebook.com/4?fields=picture devuelve la URL en sí


1
Por desgracia, ya no está en la página de inicio de los documentos Graph API, ahora está aquí: developers.facebook.com/docs/graph-api/using-graph-api
Igy

3
NO , no está en la portada de la documentación de Graph API. Será mejor que evite las declaraciones de restricción de tiempo en SO. Ya sabes ... las cosas cambian bastante rápido esos días ...
Gianluca Ghettini

e irónicamente, su respuesta es mucho más útil con información más relevante que la página de la API gráfica :-)
Simon_Weaver

6

Aquí, esta API le permite obtener fácilmente fotos de perfil de fb, google y twitter

https://www.avatars.io/

Es una API que devuelve la imagen de perfil cuando se le asigna un nombre de usuario para una variedad de redes sociales, incluidas Twitter, Facebook, Instagram y gravatar. Tiene bibliotecas para iOS, Android, Ruby, Node, PHP, Python y JavaScript.


1
¡Eso es realmente fantástico! Solo porque SO le gusta que los enlaces se describan con un poco más de detalle; es una API que devuelve la imagen de perfil cuando se le asigna un nombre de usuario para una variedad de redes sociales, incluidas Twitter, Facebook, Instagram y gravatar. Tiene bibliotecas para iOS, Android, Ruby, Node, PHP, Python y JavaScript. Una pieza excepcional de software. Se puede encontrar en GitHub .
Ari Cooper-Davis

3

puedes obtenerlo usando esta url: obtendrás la imagen HD (tamaño máximo)

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

no olvides redirect = false o devolverá un error


2

Use la URL como: https: //graph.facebook.com/ user_id / picture? Type = square en el src de la etiqueta img. El tipo puede ser pequeño, grande.


2

Puede usar AngularJs para esto, su función de enlace de datos bidireccional obtendrá una solución con un mínimo esfuerzo y menos código.

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

Espero que esto responda a su consulta. Nota: También puede usar otra biblioteca.


1

A través del SDK de Javascript (v2.12 - abril de 2017) puede obtener los detalles de la solicitud de imagen de esta manera:

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);
  }
});

Para obtener la respuesta JSON, el parámetro redirectcon 0 (cero) como valor es importante ya que la solicitud redirige a la imagen de forma predeterminada. Aún puede agregar otros parámetros en la misma URL. Ejemplos:

  • "/" + uid + "/picture?redirect=0&width=100&height=100": se devolverá una imagen de 100x100;
  • "/" + uid + "/picture?redirect=0&type=large": se devuelve una imagen de 200x200. Otros valores de tipo posibles incluyen: pequeño , normal , álbum y cuadrado .

1

Simplemente siga la siguiente URL

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

El tipo puede ser normal, pequeño, mediano, grande. O cuadrado (si desea obtener una imagen cuadrada, el tamaño cuadrado está limitado a 50x50).


2
Si desea obtener una imagen cuadrada, el tamaño cuadrado está limitado a 50x50.
Rahul Gupta

Para obtener más detalles, siga Facebook Graph API developers.facebook.com/docs/graph-api/reference/v3.2/user/…
Rahul Gupta

1

Según la última versión 3.2 de la API de Facebook actual, para los usuarios puede usar este método genérico para obtener una imagen de perfil: https://graph.facebook.com/v3.2/{user-id}/picture?type=square puede visite la documentación para la imagen del usuario aquí . Los valores posibles para el parámetro de tipo en URL pueden ser pequeños, normales, álbum, grandes, cuadrados

Para grupos y páginas , la imagen de perfil no está disponible directamente. Tienes que obtenerlos usando el token de acceso. Para los grupos, debe usar el token de acceso de usuario y para las páginas puede usar tanto el token de acceso de usuario como el token de acceso de página.

Puede obtener la imagen de perfil del grupo o de la página utilizando la URL genérica: https://graph.facebook.com/v3.2/{user-id}/picture?access_token={access-token}&type=square

Espero que esto sea útil para las personas que buscan una foto de perfil de página o grupo.


Para la mayoría de las páginas, obtengo la imagen de perfil de las páginas sin token de acceso, pero para algunas páginas está devolviendo una imagen de signo de interrogación como respuesta en el siguiente formato. {"data": {"is_silhouette": true, "url": " static.xx.fbcdn.net/rsrc.php/v3/y6/r/_xS7LcbxKS4.gif "}} ¿Alguna pista?
xyz

0

Puede usar el siguiente punto final para obtener image.jfif en lugar de jpg:

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

Tenga en cuenta que no podrá ver la imagen, solo descárguela.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.