googleアクセストークンによるユーザー情報の取得をテストしています
サインインボタンをクリックした後、リダイレクトされます
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=access_token_here
そして、このようなJSONデータを取得します
{
"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"
}
ユーザー名、アドレスを抽出し、ヘルプをメールで送信する方法を知る必要がありますか?
前もって感謝します
これを試してください:
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');
}
});
このAPIを使用して、サーバーにGoogleサインインした後に受け取った認証トークンを確認できます
リクエスト
https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={accces_token}
応答
{
"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",
...
...
}
GoogleのPeople APIにアクセスするには、アクセストークン(リダイレクトURLで取得)を使用する必要があります。仕様を確認してください ここ 。
GoogleのOAuth2プレイグラウンド は、アクセストークンを使用してGoogleのAPIにアクセスする方法を理解するのに非常に便利です。
幸運を!
チェック this 。デモの例があります
コードスニペット:
$accountObj = call_api($_SESSION['accessToken'],"https://www.googleapis.com/oauth2/v1/userinfo");
call_api
APIを呼び出してデータを取得します。
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;
}
アカウントオブジェクトから、名前にアクセスできます。
$your_name = $accountObj->name;
クイックスタートを使用して、ここにサンプルを表示できます。 sample
そして、これが People:get の説明です
これはサーバー側の単純なnodejsコードです。
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);
});
});
});
同じ問題がありました。ユーザー情報を抽出したかった。しかし、ヒットする正確なリンクを取得できませんでした。次に、 Passport Google Strategy のコードをLine number 54
。
私のスコープは['profile', 'email']
[〜#〜] get [〜#〜]リクエスト
https://www.googleapis.com/oauth2/v3/userinfo?access_token={access_token}
応答
{
"sub": "23423....",
"name": "John Doe",
"given_name": "John",
"family_name": "Doe",
"picture": "<Profile picture URL>",
"email": "[email protected]",
"email_verified": true,
"locale": "en"
}
PHPを使用している場合
こちら で確認できます。要するに、あなたが探しているコードはこれです
$payload = $client->verifyIdToken($id_token);
このペイロードには、必要なスコープを追加する限り、必要な情報が含まれています。