Comment obtenir l'email de l'utilisateur de google plus oauth
Lien: https://sites.google.com/site/oauthgoog/Home/emaildisplayscope
À partir du lien ci-dessus, j'ajoute la portée de l'email
https://www.googleapis.com/auth/plus.me
https://www.googleapis.com/auth/userinfo.email
Mais je ne comprends pas ce qui suit
Une fois que vous avez un jeton OAuth valide, Vous pouvez l'utiliser pour effectuer des appels D'API vers le point de terminaison de L'API Email Display: https://www.googleapis.com/userinfo/email Si le jeton n'est pas valide, une erreur 401 sera retourné. Si le jeton est valide, l'adresse e-mail de l'Utilisateur sera retournée. L'API retournera également une valeur booléenne pour indiquer si Google a vérifié que L'utilisateur possède cette adresse e-mail. Cependant, la plupart des applications installées ignoreront cette valeur.
Comment faire un appel au point de terminaison de L'API Email Display? À l'aide de https://www.googleapis.com/userinfo/email
4 réponses
Définissez vos étendues sur:
Et utilisez le point de terminaison:
Https://www.googleapis.com/oauth2/v1/userinfo?alt=json
Utilisation:
get https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token
Vous obtiendrez JSON:
{ "id": "xx",
"name": "xx",
"given_name": "xx",
"family_name": "xx",
"link": "xx",
"picture": "xx",
"gender": "xx",
"locale": "xx"
}
Les étendues ont changé pour la connexion Google+.
Définissez vos étendues sur:
https://www.googleapis.com/auth/plus.login
https://www.googleapis.com/auth/userinfo.email
Les appels JavaScript ressemblent à ceci:
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);
})
});
Plus d'informations https://developers.google.com/+.
Edit: notez que vous n'avez pas besoin d'étendues pour plus.me ou userinfo.profil.
Maintenant, nous utilisons GoogleAPI avec Google +
Comme en décembre 2013, voici le site le plus mis à jour;
Https://developers.google.com/+/
Puis pour SignIn pour le Web
Https://developers.google.com/+/web/signin/
Choisir un flux de connexion
- > flux côté Client
->initier le flux de connexion avec JavaScript (je crois que c'est le dernier la technologie de)
Https://developers.google.com/+/web/signin/javascript-flux de
Lancer le flux de connexion Google + avec JavaScript
Vous pouvez démarrer le flux de connexion Google + en utilisant le gapi .auth.signIn () méthode. Cette méthode vous donne beaucoup de flexibilité pour décider comment et quand à demander à l'utilisateur d'autoriser votre application et de la connexion.
Https://developers.google.com/+/web/api/javascript#gapiauthsigninparameters
Gapi.auth.signIn(paramètres)
Initie le flux OAuth 2.0 de connexion Google+ côté client. Semblable à gapi.auth.authorize() sauf que cette méthode prend en charge la fonction Fonctionnalités de connexion Google+, y compris les installations en direct D'Android des apps. Cette méthode est une alternative JavaScript à L'utilisation de Google+ Bouton de connexion widget.
Https://developers.google.com/+/web/signin/javascript-flux de
- essayez la page pour déclencher le flux de connexion avec gapi.auth.signIn ()
Https://google-developers.appspot.com/+/demos/signin_demo_render (code Source)
Vous allez essayer ceci et pour le vôtre, suivez
Étape 1: Créer un ID client et un secret client
Ignorer l'étape suivante,
En fait, vous avez besoin clientID seulement et remplacer celui dans le code source de essayez-le ci-dessus.
Ajouter la portée 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'
};
Ajouter
gapi.client.load('oauth2', 'v2', function()
{
gapi.client.oauth2.userinfo.get()
.execute(function(resp)
{
// Shows user email
console.log(resp.email);
});
});
Voici le code complet et concis basé sur ce qui précède:
<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>
Pas de sortie HTML, mais console. alors ouvrez les outils de console des développeurs du navigateur pour afficher le résultat.
Je l'ai fait dans angularjs, dans le cadre ionique, et cela fonctionne., essayez ceci.
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);
});
}
});