Estoy trabajando en un CMS que obtiene la imagen de perfil de un usuario de su URL de Facebook (es decir, http://facebook.com/users_unique_url ). ¿Cómo puedo lograr esto? ¿Existe una llamada a la API de Faceboook que obtenga la URL de la imagen de perfil de un usuario sin que el usuario necesite Permitir la aplicación?
257
?type=large
cadena de consulta que puede agregar. Accesorios para encontrar una respuesta mucho mejor que el raspado de pantalla que estaba escribiendo, por cierto :).<img src="//graph.facebook.com/sarfraz.anees/picture" />
si cambia entre HTTP y HTTPS ... el navegador detecta el protocolo y no obtendrá advertencias de contenido mixto en HTTPS.Mostrar:
50x50 píxeles
200 píxeles de ancho
Para guardar (usando PHP)
NOTA: No uses esto . Vea el comentario de @ Foreever a continuación.
Donde $ fid es su identificación de usuario en Facebook.
NOTA: En el caso de imágenes marcadas como "18+", necesitará un acceso_token válido de un usuario de 18+:
ACTUALIZACIÓN 2015:
Graph API v2.0 no se puede consultar con nombres de usuario, debe usar
userId
siempre.fuente
ACTUALIZACIÓN :
A partir de finales de agosto de 2012, la API se actualizó para permitirle recuperar las imágenes de perfil del usuario en diferentes tamaños. Agregue los campos opcionales de ancho y alto como parámetros de URL:
donde
WIDTH
yHEIGHT
son sus valores de dimensión solicitados.Esto devolverá una imagen de perfil con un tamaño mínimo de
WIDTH
xHEIGHT
al intentar preservar la relación de aspecto. Por ejemplo,devoluciones
ACTUALIZACIÓN FINAL
Para obtener la foto de perfil de un usuario, llame
donde
USER_ID
puede ser el número de identificación de usuario o el nombre de usuario.Para obtener una foto de perfil de usuario de un tamaño específico, llame al
donde
SIZE
debe ser reemplazado con una de las palabrasDependiendo del tamaño que quieras.
Esta llamada devolverá una URL a una sola imagen con su tamaño basado en el parámetro de tipo elegido.
Por ejemplo:
devuelve una URL a una versión pequeña de la imagen.
La API solo especifica el tamaño máximo para las imágenes de perfil, no el tamaño real.
Cuadrado:
Pequeña
Normal
Grande
Si llama al USER_ID / imagen predeterminado, obtiene el tipo cuadrado.
ACLARACIÓN
Si llama (según el ejemplo anterior)
devolverá una respuesta JSON si está utilizando uno de los métodos de solicitud de los SDK de Facebook . De lo contrario, devolverá la imagen en sí. Para recuperar siempre el JSON, agregue:
al igual que:
fuente
&redirect=false
devolución de los datos JSON en lugar de redirigir a la imagenPara obtener la URL de la imagen, NO el contenido binario:
Debe usar su ID de FACEBOOK, NO SU NOMBRE DE USUARIO. Puede obtener su identificación de Facebook allí:
http://findmyfbid.com/
fuente
Código simple de una línea para guardar una imagen de perfil de tamaño COMPLETO en su servidor.
Esto solo funcionará si openssl está habilitado en php.ini.
fuente
Agregó esto como un comentario a la respuesta aceptada, pero consideró que merecía una explicación más larga. A partir de abril de 2015, esto probablemente se planteará varias veces.
A partir de V2 de la API gráfica, la respuesta aceptada ya no funciona con un nombre de usuario. Entonces, primero necesita el ID de usuario y ya no puede usar un nombre de usuario para obtenerlo. Para complicar aún más las cosas, por razones de privacidad, Facebook ahora está cambiando los ID de usuario por aplicación (consulte https://developers.facebook.com/docs/graph-api/reference/v2.2/user/ y https: //developers.facebook .com / docs / apps / upgrading / # upgrading_v2_0_user_ids ), por lo que tendrá que tener algún tipo de autenticación adecuada para recuperar un ID de usuario que pueda usar. Técnicamente, la foto de perfil sigue siendo pública y está disponible en / userid / picture (ver documentos en https://developers.facebook.com/docs/graph-api/reference/v2.0/user/picture y este usuario de ejemplo: http: //graph.facebook.com/v2.2/4/picture?redirect=0) sin embargo, descubrir el ID de usuario estándar de un usuario parece imposible basado solo en su perfil: su aplicación necesitaría hacer que aprueben la interacción con la aplicación, lo que para mi caso de uso (solo mostrar una foto de perfil al lado de su enlace de perfil FB) es excesivo.
Si alguien ha descubierto una forma de obtener la foto de perfil basada en el nombre de usuario, o, alternativamente, cómo obtener un ID de usuario (incluso uno alternativo) para recuperar una foto de perfil, ¡por favor comparta! Mientras tanto, la antigua url gráfica todavía funciona hasta abril de 2015.
fuente
Una forma es usar el código que Gamlet publicó en su respuesta:
Guárdalo como
curl.php
Luego en su archivo:
Pensé en publicar esto, porque me tomó un poco de tiempo descifrar los detalles ... Aunque las imágenes de perfil son públicas, aún necesitas tener un token de acceso para obtenerlo cuando lo enrollas .
fuente
Hay forma de hacerlo;)
Gracias a " http://it.toolbox.com/wiki/index.php/Use_curl_from_PHP_-_processing_response_headers ":
fuente
Solución PHP funcional (HTTP GET) de abril de 2015 (sin PHP 5 SDK):
Puede cambiar 'type' en parametr:
Cuadrado:
Pequeña
Normal
Grande
fuente
Estaba pensando: tal vez la identificación será una herramienta útil. Cada vez que un usuario crea una nueva cuenta, debe obtener una ID más alta. Busqué en Google y descubrí que hay un método para estimar la fecha de creación de la cuenta por ID y Massoud Seifi de metadatascience.com reunió algunos datos buenos al respecto.
Lee este artículo:
http://metadatascience.com/2013/03/11/inferring-facebook-account-creation-date-from-facebook-user-id/
Y aquí hay algunas ID para descargar:
http://metadatascience.com/2013/03/14/lookup-table-for-inferring-facebook-account-creation-date-from-facebook-user-id/
fuente
La publicación del blog Grab the Picture of a Facebook Graph Object podría ofrecer otra forma de solución. Use el código en el tutorial junto con la API Graph de Facebook y su biblioteca SDK de PHP.
... Y trate de no usar file_get_contents (a menos que esté listo para enfrentar las consecuencias; vea file_get_contents vs curl ).
fuente
¿Le preocupa el tamaño de la imagen de perfil? al momento de implementar el inicio de sesión con Facebook usando PHP. Le mostraremos la manera simple de obtener una imagen de perfil de gran tamaño en Facebook PHP SDK. Además, puede obtener la imagen de tamaño personalizado del perfil de Facebook.
Establezca la dimensión de la imagen de perfil utilizando la siguiente línea de código.
$ userProfile = $ facebook-> api ('/ me? fields = picture.width (400) .height (400)');
revise esta publicación: http: //www.codexworld.com/how-to-guides/get-large-size-profile-picture-in-facebook-php-sdk/
fuente
@NaturalBornCamper,
Buen código! ¡Aquí hay una función de código limpio para tal proceso!
Esto devolverá la URL sin procesar de la imagen del avatar de Facebook. ¡Siéntete libre de hacer lo que quieras con él!
fuente
Puede obtener el URI de perfil a través de la herramienta en línea de búsqueda de id de Facebook
También puede pasar el tipo de parámetro con posibles valores pequeño, normal, grande, cuadrado.
Consulte la documentación oficial
fuente