Javascript 谷歌+;api登录不返回电子邮件
我使用以下代码在我的应用程序中实现了基于javascript的google+登录: var isgpinitialized=falseJavascript 谷歌+;api登录不返回电子邮件,javascript,google-plus,google-login,Javascript,Google Plus,Google Login,我使用以下代码在我的应用程序中实现了基于javascript的google+登录: var isgpinitialized=false function render() { gapi.signin.render('loginWithGoogle', { 'callback': 'onSignIn', 'clientid': 'the client id', 'cookiepolicy': 'single_host_origin',
function render() {
gapi.signin.render('loginWithGoogle', {
'callback': 'onSignIn',
'clientid': 'the client id',
'cookiepolicy': 'single_host_origin',
'requestvisibleactions': 'http://schema.org/AddAction',
'scope': 'https://www.googleapis.com/auth/plus.login'
});
isGPInitialzed = true;
}
//Google
function onSignIn(authResult) {
if (!isGPInitialzed) {
if (authResult['status']['signed_in']) { //get some user info
gapi.client.load('oauth2', 'v2', function () {
gapi.client.oauth2.userinfo.get().execute(function (response) {
console.log(response.email);
$.ajax({
url: '/Account/GLogin',
type: 'POST',
data: {
email: response.email,
name: response.name,
profilePicture: response.picture
},
dataType: 'json',
success: function (isUserLoggedIn) {
if (isUserLoggedIn) {
window.location.reload();
}
}
});
});
});
}
}
else {
isGPInitialzed = false;
}
};
在我从另一个帐户创建了一个新的应用程序并替换了客户端id之前,它一直工作正常。在成功验证后,api不会在响应中返回用户电子邮件。我已经检查了应用程序的google+帐户设置,没有设置可以访问电子邮件。会出现什么问题?使用更改范围
'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email',
将范围更改为
'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email',
根据谷歌开发者的最新更新,请更改范围 此范围要求您的应用程序可以访问: 用户的Google帐户电子邮件地址,以及用户Google+配置文件中的任何公共验证电子邮件地址。您可以通过调用people.get访问电子邮件地址,它返回电子邮件数组。
用户所属的Google Apps域的名称(如果有)。根据Google开发者的最新更新,请更改范围 此范围要求您的应用程序可以访问: 用户的Google帐户电子邮件地址,以及用户Google+配置文件中的任何公共验证电子邮件地址。您可以通过调用people.get访问电子邮件地址,它返回电子邮件数组。
用户所属的Google Apps域的名称(如果有)。如果您使用的是Rails,问题可能是您需要将
omniauth-Google-oauth2
更新为(0.6.0)
谷歌似乎已经改变了API返回的内容。上述问题中的第一条注释显示哈希的结构已更改。如果使用Rails,问题可能是您需要将omniauth-google-oauth2更新为(0.6.0)
谷歌似乎已经改变了API返回的内容。上述问题中的第一条注释显示哈希的结构已更改。对于仍在寻找答案的任何人,请尝试使用以下方法:
scope: 'openid profile email'
对于仍在寻找答案的人,请尝试使用以下方法:
scope: 'openid profile email'
如果这是真实的
clientId
,则应将其隐藏。如果这是真实的clientId
,则应将其隐藏。