如何从网站上集成的google plus登录按钮获取用户的公开信息,以下是给我电子邮件的代码,我需要更多信息由google plus提供:
<div id="signin-button" class="show">
<div class="g-signin" data-callback="loginFinishedCallback"
data-approvalprompt="force"
data-clientid="9076269517.apps.googleusercontent.com"
data-scope="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email"
data-height="short"
data-cookiepolicy="single_host_origin">
</div>
java脚本:
function loginFinishedCallback(authResult) {
if (authResult) {
if (authResult['error'] == undefined){
gapi.auth.setToken(authResult); // Store the returned token.
toggleElement('signin-button'); // Hide the sign-in button after successfully signing in the user.
getEmail(); // Trigger request to get the email address.
} else {
console.log('An error occurred');
}
} else {
console.log('Empty authResult'); // Something went wrong
}
}
function getEmail(){
// Load the oauth2 libraries to enable the userinfo methods.
gapi.client.load('oauth2', 'v2', function() {
var request = gapi.client.oauth2.userinfo.get();
request.execute(getEmailCallback);
});
}
function getEmailCallback(obj){
var el = document.getElementById('email');
var email = '';
if (obj['email']) {
email = 'Email: ' + obj['email'];
}
//console.log(obj); // Uncomment to inspect the full object.
el.innerHTML = email;
toggleElement('email');
}
function toggleElement(id) {
var el = document.getElementById(id);
if (el.getAttribute('class') == 'hide') {
el.setAttribute('class', 'show');
} else {
el.setAttribute('class', 'hide');
}
}
我尝试使用name,userId替换电子邮件,但从这些变量中得不到任何内容。
如何通过google plus登录时获取用户的基本信息。
答案 0 :(得分:2)
与使用gapi.client.load
加载oauth2 v2客户端软件包的方式类似,您将再次使用它来加载plus v1客户端软件包。这将为您提供gapi.client.plus
命名空间下的许多包和方法。
Plus API包含一个用于加载有关人员信息的软件包,包括通过用户ID获取信息,或者由于他们已经通过身份验证,您可以使用特殊标识符“我”。
完整的详细信息和示例在https://developers.google.com/+/api/latest/people/get给出,但这里是一个(未经测试的)类似于getEmail()方法的函数,它将得到它们的全名:
function getFullName(){
// Load the Plus library to get the People package and methods
gapi.client.load('plus', 'v1', function() {
var request = gapi.client.plus.people.get('me');
request.execute(getFullNameCallback);
});
};
function getFullNameCallback(obj){
var el = document.getElementById('email');
var name = '';
if (obj['displayName']) {
name = 'Name: '+obj.displayName;
}
el.innerHTML = name;
toggleElement('name');
};
答案 1 :(得分:0)
以上代码段似乎不再起作用。 我们再一次追逐我们的尾巴 谷歌现在改变了...... 错误&#34;访问未配置。请使用Google Developers Console激活项目的API。&#34;
我认为它可能是&#34; Google+ API&#34;所以它在开发者控制台中打开, 但是仍然没有工作。
然而api explorer很有希望表明某种代码可以工作, 然而它的狗早餐试图辨别javascript代码在那里工作。 这么有用api explorer ....,但谷歌如何在代码中显示一个简单的WORKING示例,我们可以查看同样的请求?