Завершение работы Google plus API. Как это повлияет на вход в Google auth2 для веб-сайтов? - PullRequest
0 голосов
/ 03 февраля 2019

Меня смущают уведомления об отключении от Google, на одно из последних писем, упомянутых как

, затрагиваются проекты, напрямую запрашивающие область действия «plus.me» .Эта область может быть указана в некоторых электронных письмах, даже если ваш проект не запросил об этом напрямую.Мы приносим свои извинения за возникшую путаницу.

Я использую следующий код JS для входа в систему, могу ли я знать, повлияет ли это в любом случае из-за отключения Google plus API?

<script async defer src="https://apis.google.com/js/api.js" onload="this.onload=function(){};HandleGoogleApiLibrary()" onreadystatechange="if (this.readyState === 'complete') this.onload()"></script>

<script type="text/javascript">
//google login starts
function HandleGoogleApiLibrary() {
    // Load "client" & "auth2" libraries
    gapi.load('client:auth2', {
        callback: function() {
            // Initialize client library
            // clientId & scope is provided => automatically initializes auth2 library
            gapi.client.init({
                apiKey: 'API KEY HERE',
                clientId: 'XXXXXXXXXXXXXXXXX.apps.googleusercontent.com',
                scope: 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email'                        
            }).then(
                // On success
                function(success) {
                    // After library is successfully loaded then enable the login button
                    //CODE AFTER SUCCESS
                }, 
                // On error
                function(error) {                    
                    alert('Error : Failed to Load Library');
                }
            );
        },
        onerror: function() {
            // Failed to load libraries
        }
    });
}

// Click on login button
$("#login-button").on('click', function() {
    // API call for Google login
    gapi.auth2.getAuthInstance().signIn().then(
        // On success
        function(success) {
            // API call to get user information
            gapi.client.request({ path: 'https://www.googleapis.com/plus/v1/people/me' }).then(
                // On success
                function(success) {
                    console.log(success);
                    var user_info = JSON.parse(success.body);                       
                    //VALIDATION                 
                },
                // On error
                function(error) {                                               
                    alert('Error : Failed to login');
                }
            );
        },
        // On error
        function(error) {
            $("#login-button").removeAttr('disabled');
            alert('Error : Login Failed');
        }
    );
});

1 Ответ

0 голосов
/ 03 февраля 2019

Есть хорошие и плохие новости.

Хорошая новость заключается в том, что вы не используете ни одну из дополнительных областей .

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

В частности, этот фрагмент кода:

gapi.client.request({ path: 'https://www.googleapis.com/plus/v1/people/me' }).then(

вызывает API "plus.people.me".

К счастью, вы должны иметь возможность переключаться на другой API, такой как "userinfo" API , путем изменения конечных точекto

https://www.googleapis.com/oauth2/v2/userinfo

Возможно, вы также захотите взглянуть на более современный People API , который работает очень похожим образом и немного сложнее, но может содержать другие поля профиля.

...