谷歌登录错误-gapi.client.plus未定义



我正在使用Google plus API从我的网站上的观众那里获取电子邮件id。

谷歌参考:https://developers.google.com/+/web/签名/添加按钮

问题是当我点击登录按钮时,我在浏览器控制台中收到错误"TypeError:gap.client.plus is undefined"。

如何解决。

我的代码:

      <script src="https://apis.google.com/js/client:plusone.js?onload=signinCallback" type="text/javascript"></script>
      <span id="signinButton">
        <span class="g-signin" 
            data-callback="signinCallback"
            data-clientid="*****************.apps.googleusercontent.com"
            data-cookiepolicy="single_host_origin" 
            data-scope="profile">
        </span>
     </span>
function signinCallback(authResult) {
    gapi.client.load('plus', 'v1',function(){});
if (authResult['status']['signed_in']) {
    alert("login success");
    document.getElementById('signinButton').setAttribute('style',
            'display: none');
    var request = gapi.client.plus.people.get({
        'userId' : 'me'
    });
    request.execute(function(resp) {
        var email = '';
        if(resp['emails'])
        {
            for(var i = 0; i < resp['emails'].length; i++)
            {
                if(resp['emails'][i]['type'] == 'account')
                {
                    email = resp['emails'][i]['value'];
                }
            }
        }
        alert("email ="+email);
        console.log('ID: ' + resp.id);
        console.log('Display Name: ' + resp.displayName);
        console.log('Image URL: ' + resp.image.url);
        console.log('Profile URL: ' + resp.url);
    });
} else {
    alert("login unsuccessful");
    console.log('Sign-in state: ' + authResult['error']);
}

}

我遇到了这个问题,

我相信问题出在这里

gapi.client.load('plus', 'v1',function(){});

第三个参数是空的,谷歌宣布它是可选的,但它往往会被错误为未定义,因为试图使用它的函数没有使用或访问它

相反,您可以尝试在第三个参数中嵌套需要gap.client的函数,或者在那里引用一个外部函数。

以下是我所做的:

谷歌签名回调-获取姓名并发送电子邮件至

我认为问题可能是作为登录API的参数传递的params-json中的作用域属性。

作用域参数应包含以下URL

"https://www.googleapis.com/auth/plus.login"
"https://www.googleapis.com/auth/plus.me"

可以是/userinfo.email、/userinfo.profile

相关内容

  • 没有找到相关文章