¿Es posible obtener información del perfil del usuario a través de la API de Google? Si es posible, ¿qué API debo usar?
Me interesa esa información:
- URL del perfil de usuario (por ejemplo, https://profiles.google.com/115063121183536852887 );
- Género (sexo);
- Foto de perfil.
También sería genial obtener otra información del perfil del usuario.
oauth
google-api
userinfo
glagola
fuente
fuente
curl -X GET "https://www.googleapis.com/oauth2/v1/userinfo?alt=json" -H"Authorization: Bearer accessTokenHere"
alcance: https://www.googleapis.com/auth/userinfo.profile
obtener https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
obtendrás json:
Para Tahir Yasin:
Este es un ejemplo de php.
Puede usar la función json_decode para obtener la matriz userInfo.
fuente
$userInfoArray
propiedades. Debería ser como$userInfoArray['email']
obtener la dirección de correo electrónico del$userInfoArray
. TENGA EN CUENTA LA COTIZACIÓN ÚNICA PARA ACCEDER A LAS OPCIONES.define(email, 'email')
;)Este alcance https://www.googleapis.com/auth/userinfo.profile ha quedado obsoleto ahora. Consulte https://developers.google.com/+/api/auth-migration#timetable .
El nuevo alcance que utilizará para obtener información de perfil es: profile o https://www.googleapis.com/auth/plus.login
y el punto final es - https://www.googleapis.com/plus/v1/people/ {userId} - userId puede ser solo "yo" para el usuario que ha iniciado sesión actualmente.
fuente
If you are directly requesting the “plus.me” scope, any other Google+ OAuth scopes, or making any Google+ API calls, please ensure that you remove these requests from your project before March 7, 2019.
- GoogleEstoy usando
PHP
y resolví esto usando la versión 1.1.4 de google-api-php-clientSuponiendo que se utiliza el siguiente código para redirigir a un usuario a la página de autenticación de Google:
Suponiendo que se devuelva un código de autenticación válido
redirect_url
, lo siguiente generará un token a partir del código de autenticación y proporcionará información básica del perfil:Sin embargo, no se devuelve la ubicación. Las nuevas cuentas de YouTube no tienen nombres de usuario específicos de YouTube
fuente
Estoy usando la API de Google para .Net, pero sin duda puede encontrar la misma forma de obtener esta información usando otra versión de API. Como mencionó user872858 , el alcance userinfo.profile ha quedado obsoleto ( artículo de Google ).
Para obtener información de perfil de usuario, uso el siguiente código (parte reescrita del ejemplo de Google ):
Entonces, puede acceder a casi cualquier cosa usando userProfile.
ACTUALIZACIÓN: Para que este código funcione, debe usar los alcances adecuados en el botón de inicio de sesión de Google. Por ejemplo mi botón:
fuente
Hay 3 pasos que deben ejecutarse.
Es muy interesante que este uso más simple no se describa claramente en ninguna parte. Y creo que existe un peligro, debe prestar atención al
verified_email
parámetro que viene en la respuesta. Porque si no me equivoco , pueden producirse correos electrónicos falsos para registrar su aplicación. (Esta es solo mi interpretación, ¡hay muchas posibilidades de que me equivoque!)Creo que la mecánica de OAuth de Facebook se describe con mucha claridad.
fuente
Si se encuentra en un entorno web del lado del cliente, la nueva API javascript auth2 contiene una función muy necesaria
getBasicProfile()
, que devuelve el nombre del usuario, el correo electrónico y la URL de la imagen.https://developers.google.com/identity/sign-in/web/reference#googleusergetbasicprofile
fuente
Si solo desea obtener la identificación de usuario, el nombre y la imagen de Google para un visitante de su aplicación web, aquí está mi solución de servicio PHP pura para el año 2020 sin bibliotecas externas utilizadas -
Si lee la guía Uso de OAuth 2.0 para aplicaciones de servidor web de Google (y tenga cuidado, a Google le gusta cambiar los enlaces a su propia documentación), entonces solo debe realizar 2 pasos:
Uno de los tokens devueltos se llama "id_token" y contiene la identificación del usuario, el nombre y la foto del visitante.
Aquí está el código PHP de un juego web mío. Inicialmente estaba usando Javascript SDK, pero luego me di cuenta de que los datos de usuario falsos se podían pasar a mi juego web, cuando solo usaba el SDK del lado del cliente (especialmente la identificación de usuario, que es importante para mi juego), así que cambié a usar PHP en el lado del servidor:
Puede usar una biblioteca PHP para agregar seguridad adicional verificando la firma JWT. Para mis propósitos fue innecesario, porque confío en que Google no traicionará mi pequeño juego web enviando datos de visitantes falsos.
Además, si desea obtener más datos personales del visitante, necesita un tercer paso:
O puede obtener más permisos en nombre del usuario: consulte la lista larga en el documento OAuth 2.0 Scopes for Google API .
Finalmente, las constantes APP_ID y APP_SECRET utilizadas en mi código, las obtienes de la consola API de Google :
fuente