Sé que muchas API de redes sociales proporcionan una forma de construir una URL para la imagen de perfil de un usuario, utilizando su user_id o nombre de usuario. Para Facebook se ve así:
http://graph.facebook.com/user_id/picture?type=square
¿Hay algo como esto para Google Plus? ¿O alguna otra forma de obtener la foto del usuario sin una llamada API?
google-api
google-plus
ArVan
fuente
fuente
Respuestas:
Google había cambiado su política, por lo que la forma anterior de obtener la imagen de perfil de Google no funcionará ahora, que era
https://plus.google.com/s2/photos/profile/(user_id)?sz=150
Nueva forma de hacer esto es
Solicitar URL
Eso le dará la URL de la imagen de perfil de Google en formato json como se indica a continuación
Respuesta:
Se pueden encontrar más parámetros para enviar con la URL que puede necesitar desde aquí
Para obtener más detalles, también puede consultar la pregunta dada donde he respondido para el mismo tipo de problema ¿Cómo obtener una imagen de usuario a través de la identificación de usuario en Google plus?
Codificación feliz !!
fuente
<img>
etiqueta.../-OkM...AANA/ltpH...as/photo.jpg?sz=512
ACTUALIZACIÓN: El método siguiente NO FUNCIONA desde 2015
Es posible obtener la imagen de perfil, e incluso puede establecer su tamaño:
Ejemplo: Mi foto de perfil, con un tamaño de 100 píxeles:
Uso con una etiqueta de imagen:
¡Espero que lo hagas funcionar!
fuente
ACTUALIZACIÓN: Google dejó de admitir este método, que ahora devuelve un error 404 (no encontrado) .
Todas estas URL obtienen la imagen de perfil de un usuario:
Redirigen a la misma URL de imagen que obtiene de la API de Google, un enlace feo como
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA/ooSNulbLz8U/photo.jpg
La más simple es usarla directamente como fuente de imagen:
De lo contrario, para obtener exactamente la misma URL de una llamada a la API de Google, puede leer los encabezados de imágenes,
por ejemplo, en PHP:
como se describe en el artículo Obtener imagen de perfil de Google Plus mediante PHP .
fuente
Enfoque 1: (ya no funciona)
Enfoque 2: (cada solicitud cuenta en sus límites de tasa de api, que son 10k solicitudes por día gratis)
con el siguiente formato de respuesta:
Enfoque 3: (no requiere clave api)
en la respuesta json, obtienes una propiedad llamada "gphoto $ thumbnail", que contiene la URL de la imagen de perfil como la siguiente:
Puede notar en la URL la porción "s64-c", lo que significa que el tamaño de la imagen es 64, he intentado usar otros valores como "s100-c" y funcionaron. Además, si elimina la parte "s64-c" y agrega el parámetro "? Sz = 100", eso también funcionará a partir de ahora. Aunque esta no es una buena manera de obtener la imagen de perfil de un usuario de gplus, la ventaja es que no requiere ninguna clave de API.
fuente
Google, no se necesita API:
// Ejemplo de salidas: https://lh3.googleusercontent.com/-2N6fRg5OFbM/AAAAAAAAAAI/AAAAAAAAADE/2-RmpExH6iU/s64-c/photo.jpg
CAMBIO: el 64 en "s64" para el tamaño
fuente
Si desea mostrar la imagen de perfil del usuario que ha iniciado sesión actualmente, ni siquiera necesita conocer el {user_id}. Bastará con usarlo
https://plus.google.com/s2/photos/profile/me
.fuente
Puede obtener la URL de la imagen de perfil utilizando el método people.get de la API de Google+. Eso requiere un viaje de ida y vuelta adicional, pero es la forma más confiable de obtener la imagen.
Técnicamente, también puede usar la URL
https://s2.googleusercontent.com/s2/photos/profile/{id}?sz={size}
que luego redirigirá a la URL final.{id}
es el ID de usuario de Google o uno de los antiguos nombres de usuario de los Perfiles de Google (todavía existen para los usuarios que los tenían, pero no creo que puedas crear nuevos).{size}
es el tamaño deseado de la foto en píxeles. Estoy casi seguro de que esta no es una función compatible y documentada, por lo que no confiaría en ella para nada importante, ya que puede desaparecer en cualquier momento sin previo aviso. Pero para prototipos rápidos o pequeñas aplicaciones únicas, puede ser suficiente.fuente
intentar acceder a la URL / s2 / profile / photo funciona para la mayoría de los usuarios, pero no para todos.
El único método de prueba completo es utilizar la API de Google+. No necesita autenticación de usuario para solicitar datos de perfil público, por lo que es un método bastante simple:
Obtenga una clave de API de Google+ en https://cloud.google.com/console
Realice una solicitud GET simple a: https://www.googleapis.com/plus/v1/people/+ <nombre de usuario>? Key =
Tenga en cuenta el + antes del nombre de usuario. Si usa ID de usuario en su lugar (la cadena larga de dígitos), no necesita el +
fuente
Si usa Flutter, entonces puede acceder a él a través del
people.googleapis.com
punto final, el código usa lagoogle_sign_in
bibliotecaObtendrás algo como
donde
url
es una URL de imagen accesible.fuente
Las API de Google+ heredadas se cerraron a partir del 7 de marzo de 2019. Recientemente se han realizado cambios en el plan de cierre que pueden mitigar su efecto en algunos desarrolladores.
fuente
Intenté todo lo posible ... aquí está la última pieza de código de trabajo. Espero que ayude a alguien que lo esté buscando.
fuente
Respuesta simple: no
Tendrás que consultar la API de la persona y tomar los datos de la imagen de perfil.url para obtener la foto. AFAIK no hay un formato predeterminado para esa URL que contiene el ID de usuario.
fuente