Действия по минимизации влияния изменений области действия на пользователей
-  Если вашему приложению требуется адрес электронной почты аутентифицированного пользователя и вы ранее использовали для этой цели profile.emails.read, используйте вместо негоemail.
-  Получите одобрение для profile.emails.readс одобренным запросом на проверку. См. раздел Как отправить на проверку?
-  Отзовите предыдущий токен пользователя в области, которую необходимо удалить, или полностью удалите доступ к приложению. Например, токен с доступом profile.emails.readдолжен быть отозван. Мы рекомендуем вам применить отзыв, пока ваши пользователи находятся в вашем приложении, чтобы вы могли немедленно получить согласие пользователя.
-  Предложите пользователям повторно согласиться с новой областью действия, например email, безprofile.emails.read.
- Удалите область, которая должна быть постепенно исключена из конфигурации экрана согласия OAuth API Google.
Изменения, которые необходимо внести для переноса вашего сайта с входа в Google+ на вход в Google, зависят от того, какой процесс входа в Google+ вы используете. Как правило, для миграции требуется обновить кнопку входа, запрошенные области и инструкции по получению информации профиля из Google.
При обновлении кнопки входа не ссылайтесь на G+ и не используйте красный цвет. Соответствуйте нашим обновленным рекомендациям по брендингу .
 Большинство приложений для входа в G+ запрашивали некоторую комбинацию областей: plus.login , plus.me и plus.profile.emails.read . Вам необходимо переназначить области следующим образом:
| Старый объем | Новая область применения | 
|---|---|
| plus.login | profile | 
| plus.me | openid | 
| plus.profile.emails.read | email | 
 Многие разработчики Google+ Sign-In использовали поток кода . Это означает, что приложения Android, iOS или JavaScript получают код OAuth от Google, а клиент отправляет этот код обратно на сервер вместе с защитой от подделки межсайтовых запросов. Затем сервер проверяет код и получает токены обновления и доступа для получения информации профиля пользователя из API people.get .
Теперь Google рекомендует вам запросить токен идентификатора и отправить этот токен идентификатора от вашего клиента на ваш сервер. Токены идентификатора имеют встроенную защиту от межсайтовой подделки, а также могут быть статически проверены на вашем сервере, что позволяет избежать дополнительного вызова API для получения информации профиля пользователя с серверов Google. Следуйте инструкциям для проверки токенов идентификатора на вашем сервере .
 Если вы по-прежнему предпочитаете использовать поток кода для получения информации профиля, вы можете это сделать. Как только ваш сервер получит токен доступа, вам необходимо получить информацию о профиле пользователя от конечных точек userinfo указанных в нашем документе Обнаружение входа в систему. Ответ API форматируется иначе, чем ответ профиля Google+, поэтому вам необходимо обновить синтаксический анализ до нового формата.
Перенос кнопки входа в формате HTML
 Если вы включили кнопку входа в Google+ на свою страницу, присвоив элементу класс g-signin , внесите следующие изменения:
- Когда вы указываете свой идентификатор клиента в теге - <meta>, атрибуте- data-или объекте параметров, измените строку- clientidна- client_id, как в следующем примере:- <!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">- <!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
- Назначьте класс - g-signin2элементу кнопки входа вместо- g-signin. Кроме того, укажите отдельные обратные вызовы для успешного и неудачного выполнения вместо одного обратного вызова, как в следующем примере:- <!-- Google+ Sign-in (old) --> <div class="g-signin" data-callback="signinCallback"> </div>- <!-- Google Sign-in (new) --> <div class="g-signin2" data-onsuccess="onSignIn" data-onfailure="onSignInFailure"> </div>
- Вместо одного обработчика обратного вызова определите обработчики успеха и неудачи, как в следующем примере: - // Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }- // Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
- Эти изменения обновляют ваши области по умолчанию для - profile email openid. Вы можете получить основную информацию профиля пользователя, такую как имя, адрес электронной почты и URL-адрес изображения фотографии, следующим образом:- // Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
Перенос динамически отображаемой кнопки входа
 Если вы добавили кнопку входа в Google+ на свою страницу, gapi.signin.render() , внесите следующие изменения:
- Когда вы указываете свой идентификатор клиента в теге - <meta>, атрибуте- data-или объекте параметров, измените строку- clientidна- client_id, как в следующем примере:- <!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">- <!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
- Отрисовывайте кнопку входа с помощью - gapi.signin2.render()а не с помощью- gapi.signin.render(), как в следующем примере:- // Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);- // Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
- Вместо одного обработчика обратного вызова определите обработчики успеха и неудачи, как в следующем примере: - // Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }- // Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
 Эти изменения обновляют ваши области по умолчанию для profile email openid . Вы можете получить основную информацию профиля пользователя с помощью метода getBasicProfile() . 
Перенос процесса входа, инициируемого JavaScript
 Если вы инициировали процесс входа с помощью вызова gapi.auth.signIn() , когда пользователи нажимают кнопку входа, внесите следующие изменения:
- Когда вы указываете свой идентификатор клиента в теге - <meta>, атрибуте- data-или объекте параметров, измените строку- clientidна- client_id, как в следующем примере:- <!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">- <!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
- Используйтеgapi.auth2.attachClickHandler - gapi.auth2.attachClickHandler(), чтобы запустить процесс входа при нажатии кнопки, как в следующем примере:- // Google+ Sign-in (old) var signinButton = document.getElementById('signinButton'); signinButton.addEventListener('click', function() { gapi.auth.signIn(additionalParams); });- // Google Sign-in (new) auth2 = gapi.auth2.init(); auth2.attachClickHandler('signinButton', additionalParams, onSignIn, onSignInFailure);
- Вместо одного обработчика обратного вызова определите обработчики успеха и неудачи, как в следующем примере: - // Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }- // Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
 Эти изменения обновляют ваши области по умолчанию для profile email openid . Вы можете получить основную информацию профиля пользователя, вызвав метод getBasicProfile() .
Миграция гибридного серверного потока
Если вы использовали API JavaScript для получения одноразового кода авторизации для передачи на ваш сервер, внесите следующие изменения:
- Измените область действия с - https://www.googleapis.com/auth/plus.loginна- profile.
- Используйте - gapi.auth2.grantOfflineAccess()с существующей функцией обратного вызова, как в следующем примере:- <!-- Google+ Sign-in (old) --> <div class="g-signin" data-scope="https://www.googleapis.com/auth/plus.login" data-clientid="YOUR_CLIENT_ID" data-redirecturi="postmessage" data-accesstype="offline" data-callback="signInCallback"> </div>- // Google Sign-in (new) auth2 = gapi.auth2.init({ client_id: 'YOUR_CLIENT_ID', scope: 'profile' }); ... auth2.grantOfflineAccess().then(signInCallback);
 Если вам также нужен доступ к электронной почте пользователя, добавьте email в параметр области.