我想访问使用 Google+ API 登录我网站的用户的user_name
/ 。email_id
到目前为止,我已经实现了 Google+ API,返回值为:
User Logged In This is his auth tokenya29.AHES6ZRWhuwSAFjsK9jYQ2ZA73jw9Yy_O2zKjmzxXOI8tT6Y
如何使用它来获取用户名/电子邮件 ID?
我想访问使用 Google+ API 登录我网站的用户的user_name
/ 。email_id
到目前为止,我已经实现了 Google+ API,返回值为:
User Logged In This is his auth tokenya29.AHES6ZRWhuwSAFjsK9jYQ2ZA73jw9Yy_O2zKjmzxXOI8tT6Y
如何使用它来获取用户名/电子邮件 ID?
特别是为了检索经过身份验证的用户的电子邮件地址,请记住,您需要包含 userinfo.email 范围并调用 tokeninfo 端点。有关这方面的更多信息,请参阅https://developers.google.com/+/api/oauth#scopes。
如果您正确登录,则在此 URL 调用 Google+ api 就足够了:
GET https://www.googleapis.com/plus/v1/people/me
其中userId
具有特殊值me
,以获取有关已登录用户的所有信息。有关更多信息,请参阅:
https ://developers.google.com/+/api/latest/people/get
我正在添加一个代码示例来帮助其他人。
在这种情况下,登录操作是针对 Google 请求的电子邮件以及用户个人资料信息(如姓名、...)执行的。一旦检索到所有这些信息,就会执行对我自己的登录服务的请求:
function OnGoogle_Login(authResult) {
if (authResult['access_token']) {
gapi.client.load('oauth2', 'v2', function()
{
gapi.client.oauth2.userinfo.get().execute(function(userData)
{
$("#frmLoginGoogle input[name='id']").val(userData.id);
$("#frmLoginGoogle input[name='name']").val(userData.name);
$("#frmLoginGoogle input[name='email']").val(userData.email);
$.ajaxSetup({cache: false});
$("#frmLoginGoogle").submit();
});
});
}
}
$(document).ready(function() {
/** GOOGLE API INITIALIZATION **/
$.ajaxSetup({cache: true});
$.getScript("https://apis.google.com/js/client:platform.js", function() {
$('#btnLoginGoogle').removeAttr('disabled');
});
$("#btnLoginGoogle").click(function() {
gapi.auth.signIn({
'callback': OnGoogle_Login,
'approvalprompt': 'force',
'clientid': 'XXXXX.apps.googleusercontent.com',
'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email',
'requestvisibleactions': '',
'cookiepolicy': 'single_host_origin'
});
});
});