API Google+ и прекращение поддержки входа в Google+ на платформе Android

Недавно я получил письмо от Google, в котором говорится:

7 марта 2019 г. все API Google+ и вход в Google+ будут полностью отключены. Это будет постепенное завершение работы, которое начнется в конце января, а вызовы этих API начнут периодически выходить из строя уже 28 января 2019 года.

В следующей части письма:

XXX GP (api-project-123123123123) плюс v1 plus.people.get

Я использую com.google.android.gms.common.api.GoogleApiClient и обратные вызовы соединения для обеспечения функциональности входа.

mGoogleApiClient = new GoogleApiClient.Builder(this)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .addApi(Games.API).addScope(Games.SCOPE_GAMES)
                .build();

Для таблиц лидеров и достижений:

startActivityForResult(Games.Achievements.getAchievementsIntent(mGoogleApiClient), 0);
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient,
                        "leaderboardX"), 0);

Мое приложение не зависит от устаревших Scopes здесь: https://developers.google.com/+/mobile/android/api-deprecation.

В новых примерах сервисов Google Play в репозитории Github: https://github.com/playgameservices/android-basic-samples

есть новые реализации входа в Google и использование функций игры, как вы можете видеть в следующих фрагментах кода.

Для входа:

mGoogleSignInClient = GoogleSignIn.getClient(this,
            new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build());

mGoogleSignInClient.silentSignIn().addOnCompleteListener(this,
        new OnCompleteListener<GoogleSignInAccount>() {
          @Override
          public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
            if (task.isSuccessful()) {
              Log.d(TAG, "signInSilently(): success");
              onConnected(task.getResult());
            } else {
              Log.d(TAG, "signInSilently(): failure", task.getException());
              onDisconnected();
            }
          }
        });

Для игровых возможностей:

@Override
  public void onShowAchievementsRequested() {
    mAchievementsClient.getAchievementsIntent()
        .addOnSuccessListener(new OnSuccessListener<Intent>() {
          @Override
          public void onSuccess(Intent intent) {
            startActivityForResult(intent, RC_UNUSED);
          }
        })
        .addOnFailureListener(new OnFailureListener() {
          @Override
          public void onFailure(@NonNull Exception e) {
            handleException(e, getString(R.string.achievements_exception));
          }
        });
  }

  @Override
  public void onShowLeaderboardsRequested() {
    mLeaderboardsClient.getAllLeaderboardsIntent()
        .addOnSuccessListener(new OnSuccessListener<Intent>() {
          @Override
          public void onSuccess(Intent intent) {
            startActivityForResult(intent, RC_UNUSED);
          }
        })
        .addOnFailureListener(new OnFailureListener() {
          @Override
          public void onFailure(@NonNull Exception e) {
            handleException(e, getString(R.string.leaderboards_exception));
          }
        });
  }

Я немного сбит с толку, нужно ли мне внедрять новые API входа и лидеров / достижений?

Нужно ли мне вносить изменения, чтобы на меня не влияли API Google+ и прекращение входа в Google+?


person Fuat Coşkun    schedule 23.01.2019    source источник
comment
Вы проверили и подтвердили, вызываете ли вы API Google+? Вы можете проверить это с помощью https://console.cloud.google.com/apis/api/plus.googleapis.com/metrics?project=mygoogleprojectname, заменив mygoogleprojectname тем проектом, который, по утверждениям Google, обнаружил использование API.   -  person jess    schedule 23.01.2019
comment
Спасибо за предложение @jess, я проверил его, и есть звонки plus.people.get, как указано в электронном письме, полученном от Google. Проблема в том, что я не могу сопоставить эти HTTP-вызовы с моей реализацией. Я проверил http-вызовы на клиенте с помощью прокси Charles и не нашел ни одного вызова googleapis .com / plus / v1 / people .... Это может быть перенаправление или какой-либо внутренний вызов службы аутентификации Google.   -  person Fuat Coşkun    schedule 24.01.2019
comment
Как я могу узнать, какой API (Android, php, web) вызывает вызовы plus.people.get? Буду рад, если кто-нибудь выскажет предложение.   -  person Fuat Coşkun    schedule 24.01.2019
comment
Проверьте эту же проблему в github.   -  person jess    schedule 24.01.2019


Ответы (1)


Код, который вы вставили, не зависит от API Google+, и на него не должно повлиять завершение работы Google+.

Использовали ли вы какой-либо прицел PLUS в более ранней версии своей игры, который все еще может быть на некоторых пользовательских устройствах? Если ваш текущий код в порядке, возможно, это повлияет только на некоторые очень старые версии.

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

person Oleh Kuznetsov    schedule 25.01.2019