No olvides que en las ciencias un problema casi siempre tiene varias soluciones, no obstante te compartiremos lo más óptimo y eficiente.
Solución:
Lo que quiere hacer no es posible a través de la API de GMAIL o cualquier otra API de Google
No puede tomar una dirección de correo electrónico de Google y buscar la imagen o cualquier otra información de perfil personal asociada con esa dirección de correo electrónico a través de cualquier punto final de la API de Google. Explicación a continuación.
Obtener la imagen del remitente de un correo electrónico
La API de Gmail enumera los mensajes de correo electrónico que un usuario ha enviado y enviado. La API de gmail básicamente devuelve la respuesta del mensaje de correo electrónico del servidor de correo en formato MIME que, si marca, no contiene una imagen de perfil. Lo hace no devolverle la imagen del remitente o del destinatario.
Google no tiene un punto final para que los desarrolladores lo usen para buscar en una dirección de correo electrónico de gmail.com y devolver cualquier información de perfil de usuario (incluida la imagen), esto iría en contra de la privacidad de los usuarios. Un usuario tendría que otorgarle permiso para ver su imagen y usted no tiene ese permiso para cada usuario de Gmail que pueda estar enviando correos electrónicos a su usuario autenticado.
El sitio web de Gmail probablemente realiza algún tipo de verificación en las direcciones de correo electrónico de Gmail y adjunta la imagen a la cuenta. Google tiene acceso a los datos del perfil de todos los usuarios de GMAIL, Google no puede darle este mismo acceso, ya que sería contrario a la privacidad de los usuarios. Si no es una cuenta de Gmail, pueden consultar Gravatar para ver si se ha configurado una imagen para esta dirección de correo electrónico. Nuevamente, no hay forma de que solicites la imagen de un usuario de Google usando su dirección de correo electrónico.
- Puede consultar Gravatar para ver si se ha configurado uno para ese correo electrónico
- Si el usuario autenticado ha agregado a este usuario como un contacto y ha agregado una imagen para este usuario, es posible que pueda usar la API de Personas.
En el pasado, he recomendado a los usuarios que, como imagen, tomen la primera letra de la dirección de correo electrónico del usuario y creen una imagen con esa letra. Es posible que también desee utilizar un signo de interrogación, que es en realidad lo que hace gmail cuando su sitio web no puede encontrar un correo electrónico del usuario, probablemente al comprobar Gravatar.
Obtener la imagen del usuario autenticado actual
Puede obtener esta información del punto final people.get, solo asegúrese de haber solicitado el alcance del perfil del usuario cuando lo autentique
GET https://people.googleapis.com/v1/people/me
Devuelve una gran respuesta que contiene la información del perfil de los usuarios; parte de ella contiene la imagen de los usuarios
"photos": [
"url": "https://lh3.googleusercontent.com/a-/AAuE7mDuIWqXzrrp-65cIhXSD2HjCI8WYsWHR0fDx5_wQPY=s100",
"metadata":
"source":
"type": "PROFILE",
"id": "117200475532672775346"
,
"primary": true
],
El proyecto de muestra oficial para la API de personas contiene información sobre cómo conectarse a la API. Solo asegúrese de agregar el alcance del ‘perfil’
El código para obtener la imagen debería ser algo como esto.
function getPicture()
gapi.client.people.people.get(
'resourceName': 'people/me',
'pageSize': 10,
'personFields': 'photos',
).then(function(response)
var connections = response.result.connections;
appendPre('Connections:');
if (connections.length > 0)
for (i = 0; i < connections.length; i++)
var person = connections[i];
if (person.url && person.url.length > 0)
appendPre(person.names[0].url)
else
appendPre("No display name found for connection.");
else
appendPre('No connections found.');
);
No creo que Google comparta esa información con nadie sin permiso. Tienes que crear un perfil para cada usuario y tomar la imagen de perfil solo una vez cuando el usuario se registre en tu plataforma por parte de Google oauth. Verifica esta información https://developers.google.com/actions/identity/google-sign-in- oauth
La respuesta actualmente aceptada no es del todo correcta, ya que existe una API de Google que expone los avatares de Gmail, así como el nombre y / o apellido del usuario, siempre que el usuario haya configurado alguno públicamente.
Aunque hasta ahora no he podido encontrar el punto final de API real que puede usar para lograr esto, encontré avatarapi.com.
Como se indica en su sitio web:
Esta API utiliza información de perfil público proporcionada por Google, a través de una fuente de datos de Google expuesta públicamente para determinar el nombre y la imagen de perfil del usuario.
Tienen una alternativa a Gravatar. También me encantaría saber dónde se encuentra esta “fuente de datos de Google” que utilizan.