Ошибка входа в Google-gapi.client.plus не определена

Я использую Google Plus API, чтобы получить идентификатор электронной почты от зрителей на моем веб-сайте.

Ссылка Google:https://developers.google.com/+/web/signin/add-button

Проблема в том, что когда я нажимаю кнопку входа, я получаю сообщение об ошибке «TypeError: gapi.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']);
}

}


person nmkkannan    schedule 17.10.2014    source источник


Ответы (2)


У меня была эта проблема,

Я считаю, что проблема здесь

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

Третий параметр пуст, который Google объявляет необязательным, но он имеет тенденцию ошибочно считаться неопределенным, потому что он не используется или не доступен функциям, которые пытаются его использовать.

Вместо этого вы можете попытаться вложить функции, которым требуется gapi.client, в этот третий параметр или сослаться на внешнюю функцию.

Вот что я сделал:

Обратный вызов Google для входа — получение имени и адреса электронной почты

person Kiwizoom    schedule 17.10.2014

Я считаю, что проблема может быть в свойстве области действия в параметрах json, переданных в качестве параметра для API входа.

Параметр области действия должен содержать указанные ниже URL-адреса.

"https://www.googleapis.com/auth/plus.login"
"https://www.googleapis.com/auth/plus.me"< бр>

и может быть /userinfo.email, /userinfo.profile

person mahesh    schedule 18.06.2015