je teste l'obtention d'informations d'utilisateur par jeton d'accès Google
après avoir cliqué sur le bouton de connexion, je suis redirigé vers
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=access_token_here
Et obtenez des données JSON comme celle-ci
{
"issued_to": "my client id.apps.googleusercontent.com",
"audience": "my client id.apps.googleusercontent.com",
"user_id": "user id here",
"scope": "https://www.googleapis.com/auth/plus.login",
"expires_in": 3596,
"access_type": "online"
}
maintenant, j'ai besoin de savoir comment extraire le nom d'utilisateur, l'adresse et l'adresse e-mail, s'il vous plaît?
merci d'avance
Essaye celui-là:
var url = 'https://www.googleapis.com/plus/v1/people/me?access_token={access_token}';
$.ajax({
type: 'GET',
url: url,
async: false,
success: function(userInfo) {
//info about user
console.log(userInfo);
console.log('test');
},
error: function(e) {
console.log('error');
}
});
Vous pouvez vérifier le jeton d'authentification reçu après la connexion Google sur votre serveur à l'aide de cette API.
Demande
https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={accces_token}
Réponse
{
"email_verified": "true",
"email": "[email protected]",
"name": "abhinav srivastava",
"picture": "https://lh3.googleusercontent.com/-xgD_zFj1EgY/AAAAAAAAAAI/AAAAAAAACZ0/fnecSQ03o0Y/s96-c/photo.jpg",
"given_name": "abhinav",
"family_name": "srivastava",
"locale": "en",
...
...
}
Vous devez utiliser le jeton d'accès (vous l'avez dans l'URL de redirection) pour accéder à l'API Google People. Découvrez les spécifications ici .
Vous pourriez trouver le terrain de jeu OAuth2 de Google plutôt utile pour avoir une idée de la façon d'utiliser les jetons d'accès pour accéder aux API de Google.
Bonne chance!
Vérifiez this . Il y a exemple avec la démo
Extrait de code:
$accountObj = call_api($_SESSION['accessToken'],"https://www.googleapis.com/oauth2/v1/userinfo");
call_api
appelle l'API et récupère les données:
function call_api($accessToken,$url){
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$curlheader[0] = "Authorization: Bearer " . $accessToken;
curl_setopt($curl, CURLOPT_HTTPHEADER, $curlheader);
$json_response = curl_exec($curl);
curl_close($curl);
$responseObj = json_decode($json_response);
return $responseObj;
}
À partir de l'objet de compte, le nom peut être consulté:
$your_name = $accountObj->name;
Vous pouvez utiliser le démarrage rapide et voir l'exemple ici: sample
Et voici une description de People: get
Ceci est un simple code nodejs côté serveur.
var express = require('express');
var appln = express();
var google = require('googleapis');
var plus = google.plus('v1');
var OAuth = google.auth.OAuth2;
var oauth2client = new OAuth(YOUR_CLIENT_ID , YOUR_SECRET_ID , CALLBACK_REDIRECT_URI );
appln.get("/tokens" , function(req , res ) {
var code = req.query.code;
oauth2client.getToken( code , function( err , tokens ){
if(err){
console.log(err);
res.send(err);
return;
}
oauth2client.setCredentials(tokens);
actoken = tokens.access_token;
reftoken = tokens.refresh_token;
plus.people.get({
userId: 'me',
auth: oauth2client
}, function (err, response) {
// handle err and response
var name = ""+response.displayName;
var id = ""+response.id;
var age = ""+response.ageRange.min;
if(err) console.log(err);
console.log("Name : ", name," ",id,"",age);
res.send(response);
});
});
});
SI VOUS UTILISEZ PHP
Vous pouvez vérifier ici . En bref, le code que vous recherchez est le suivant:
$payload = $client->verifyIdToken($id_token);
Ici, charge utile contient les informations dont vous avez besoin, tant que vous ajoutez les étendues nécessaires.