saber - Cómo obtener el correo electrónico del usuario de google plus oauth
como saber el correo electronico de una persona en hotmail (4)
Ahora usamos GoogleAPI con Google+
A diciembre de 2013, este es el sitio web más actualizado;
https://developers.google.com/+/
Entonces para SignIn para Web
https://developers.google.com/+/web/signin/
Elegir un flujo de inicio de sesión
-> flujo del lado del cliente
-> Iniciar el flujo de inicio de sesión con JavaScript ( creo que esta es la última tecnología )
https://developers.google.com/+/web/signin/javascript-flow
Iniciar el flujo de inicio de sesión de Google+ con JavaScript
Puede iniciar el flujo de inicio de sesión de Google+ utilizando el método gapi.auth.signIn () . Este método le brinda mucha flexibilidad para decidir cómo y cuándo solicitarle al usuario que autorice su aplicación e inicie sesión.
https://developers.google.com/+/web/api/javascript#gapiauthsigninparameters
gapi.auth.signIn (parámetros)
Inicia el flujo de OAuth 2.0 de inicio de sesión en Google+ del lado del cliente. Similar a gapi.auth.authorize (), excepto que este método es compatible con las funciones avanzadas de inicio de sesión de Google+, incluidas las instalaciones inalámbricas de las aplicaciones de Android. Este método es una alternativa de JavaScript para usar el widget de botón Iniciar sesión de Google+.
https://developers.google.com/+/web/signin/javascript-flow
- Pruébalo Página para activar el flujo de inicio de sesión con gapi.auth.signIn ()
https://google-developers.appspot.com/+/demos/signin_demo_render (SourceCode)
Intentarás esto y por tu cuenta, sigue
Paso 1: crea una ID de cliente y un secreto de cliente
Ignora el siguiente paso,
En realidad, solo necesita clientID y reemplaza el que está en el código fuente de Try it above.
Agregar alcance https://www.googleapis.com/auth/userinfo.email
var options = {
''callback'': loginFinished,
''approvalprompt'': ''force'',
''clientid'': ''YOURID.apps.googleusercontent.com'',
''scope'': ''https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email'',
''requestvisibleactions'': ''http://schemas.google.com/CommentActivity http://schemas.google.com/ReviewActivity'',
''cookiepolicy'': ''single_host_origin''
};
Añadir
gapi.client.load(''oauth2'', ''v2'', function()
{
gapi.client.oauth2.userinfo.get()
.execute(function(resp)
{
// Shows user email
console.log(resp.email);
});
});
Aquí está el código completo de trabajo y conciso basado en lo anterior:
<html>
<head>
<title>Google+ Sign-in button demo: rendering with JavaScript</title>
<style type="text/css">
html, body { margin: 0; padding:0;}
#signin-button {
padding: 5px;
}
#oauth2-results pre { margin: 0; padding:0; width: 600px;}
.hide { display: none;}
.show { display: block;}
</style>
<script src="https://apis.google.com/js/client:platform.js" type="text/javascript"></script>
<script type="text/javascript">
var loginFinished = function(authResult)
{
if (authResult)
{
console.log(authResult);
}
gapi.client.load(''oauth2'', ''v2'', function()
{
gapi.client.oauth2.userinfo.get()
.execute(function(resp)
{
// Shows user email
console.log(resp.email);
});
});
};
var options = {
''callback'': loginFinished,
''approvalprompt'': ''force'',
''clientid'': ''YOURID.apps.googleusercontent.com'',
''scope'': ''https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email'',
''requestvisibleactions'': ''http://schemas.google.com/CommentActivity http://schemas.google.com/ReviewActivity'',
''cookiepolicy'': ''single_host_origin''
};
var renderBtn = function()
{
gapi.signin.render(''renderMe'', options);
}
</script>
</head>
<body onload ="renderBtn()">
<div id="renderMe"></div>
</body>
</html>
Sin salida HTML, pero consola. así que abra las herramientas de la consola de desarrolladores para ver el resultado.
Enlace: https://sites.google.com/site/oauthgoog/Home/emaildisplayscope
Desde el enlace de arriba agrego el alcance del correo electrónico
https://www.googleapis.com/auth/plus.me
https://www.googleapis.com/auth/userinfo.email
Pero no entiendo lo siguiente
Una vez que tiene un token OAuth válido, puede usarlo para realizar llamadas a API al punto final de la API de visualización de correo electrónico: https://www.googleapis.com/userinfo/email Si el token no es válido, se devolverá un error 401. Si el token es válido, se devolverá la dirección de correo electrónico del usuario. La API también devolverá un valor booleano para indicar si Google ha verificado que el usuario posee esa dirección de correo electrónico. Sin embargo, la mayoría de las aplicaciones instaladas ignorarán ese valor.
¿Cómo hacer una llamada al punto final de la API de visualización de correo electrónico? Usando https://www.googleapis.com/userinfo/email
Configure sus ámbitos para:
Y usa el punto final:
https://www.googleapis.com/oauth2/v1/userinfo?alt=json
Uso:
get https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
Obtendrás JSON:
{ "id": "xx",
"name": "xx",
"given_name": "xx",
"family_name": "xx",
"link": "xx",
"picture": "xx",
"gender": "xx",
"locale": "xx"
}
Hice esto en angularjs, en el marco Iónico, y funciona. Inténtalo.
controller("OauthExample", function($scope, $cordovaOauth, $http) {
$scope.googleLogin = function() {
$cordovaOauth.google("YOUR CLIENTID", ["https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"]).then(function(result) {
window.localStorage.setItem("access_token", result.access_token);
$scope.token=JSON.stringify(result);
}, function(error) {
console.log(error);
});
}
$scope.getProfileInfo = function() {
console.log(window.localStorage.getItem(''access_token''));
$http.defaults.headers.common.Authorization = "Bearer " + window.localStorage.getItem("access_token");
$http.get("https://www.googleapis.com/oauth2/v1/userinfo?alt=json")
.success(function(data) {
console.log(data);
console.log(data.email);
})
.error(function(error) {
console.log(error);
});
}
});
Los ámbitos han cambiado para el inicio de sesión de Google+.
Configure sus ámbitos para:
https://www.googleapis.com/auth/plus.login
https://www.googleapis.com/auth/userinfo.email
Las llamadas a JavaScript se ven así:
gapi.client.load(''oauth2'', ''v2'', function() {
gapi.client.oauth2.userinfo.get().execute(function(resp) {
// Shows user email
console.log(resp.email);
})
});
gapi.client.load(''plus'', ''v1'', function() {
gapi.client.plus.people.get( {''userId'' : ''me''} ).execute(function(resp) {
// Shows profile information
console.log(resp);
})
});
Más información https://developers.google.com/+ .
Editar: Tenga en cuenta que no necesita ámbitos para plus.me o userinfo.profile.