Вход в Google+ API не возвращает электронную почту

Я реализовал вход в Google+ на основе javascript в своем приложении, используя следующий код:

вар isGPInitialzed = ложь;

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;
    }
};

Он работал нормально, пока я не создал новое приложение из другой учетной записи и не заменил идентификатор клиента. При успешной аутентификации API не возвращает адрес электронной почты пользователя в ответе. Я проверил настройки учетной записи Google+ для приложений и не могу предоставить доступ к электронной почте. В чем может быть проблема?


person seadrag0n    schedule 14.06.2015    source источник
comment
Если это настоящий clientId, лучше его скрыть.   -  person Wiktor Zychla    schedule 14.06.2015


Ответы (4)


изменить масштаб с помощью

'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email',
person Sourbh Gupta    schedule 14.06.2015

Для тех, кто все еще ищет ответ, попробуйте использовать это:

 scope: 'openid profile email'
person yohanes    schedule 31.03.2019

на основе последнего обновления от разработчиков Google, пожалуйста, измените область действия,

https://www.googleapis.com/auth/plus.profile.emails.read

Эта область запрашивает, чтобы вашему приложению был предоставлен доступ к: адресу электронной почты аккаунта Google пользователя, а также к любым общедоступным проверенным адресам электронной почты в профиле пользователя Google+. Вы получаете доступ к адресам электронной почты, вызывая people.get, который возвращает массив адресов электронной почты. имя домена Служб Google, к которому принадлежит пользователь, если таковой имеется.

person Bobby    schedule 03.06.2018