Проблема с аутентификацией OAuth API Google Диска Android - onActivityResult возвращает «0» - PullRequest
0 голосов
/ 30 сентября 2018

Я просто пытаюсь пройти аутентификацию для Android Drive API.

Я сгенерировал подписанный APK из Android Studio.Учетная запись проходит проверку подлинности, и Аутентификация Google Drive API отлично работает с этим сгенерированным APK.

Теперь, когда я загружаю этот тот же APK для внутреннего тестирования в консоли Play.Тогда аутентификация завершается неудачей.

__ Теперь вот как я все это сделал __

1) Добавлено следующее в Манифесте Android

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

2) Реализована аутентификация, подобная этой

public abstract class AuthActivityStackOverflow extends BaseActivity {

    protected static final int GOOGLE_SIGN_IN_REQUEST_CODE = 1;

    public void signIn() {
        startActivityForResult( getGoogleSignInClient().getSignInIntent(), GOOGLE_SIGN_IN_REQUEST_CODE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == GOOGLE_SIGN_IN_REQUEST_CODE) {
            if (resultCode == RESULT_OK) {
                onSignInSuccess(GoogleSignIn.getLastSignedInAccount(this), requestCode);
                showMessage("Account Linked Successfully");
            } else { onSignInFailed(); }
        }
    }

    protected GoogleSignInClient getGoogleSignInClient(){
        GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestScopes(Drive.SCOPE_APPFOLDER)
                .requestEmail()
                .build();
        return GoogleSignIn.getClient(this, signInOptions);
    }
}

3) Я сгенерировал ключ отладки SHA1 и зарегистрировал учетные данные в консоли API, а затем протестировал приложение. Здесь работает. (onActivityResult возвращает RESULT_OK)

4) Теперь я сгенерировал рабочий ключ SHA1 и зарегистрировал учетные данные с помощью API Console, а также сгенерировал окончательный подписанный APK из Android Studio и протестировал на моемфизическое устройство. Он все еще работает. (onActivityResult возвращает RESULT_OK)

5) Теперь я опубликовал этот финальный производственный APK для внутреннего теста в Play Console.

6) СЕЙЧАС, когда я загружаю этоприложение и запустить эту аутентификацию. Сбой, теперь он не работает. (onActivityResult возвращает "0" )

Есть ли что-то, чего мне не хватает.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Все шаги, которые я выполнил, как указано в моем вопросе, верны.Я только что пропустил одну вещь: я использую «Подписание приложения в Google Play» .

При использовании «Подписание приложения в Google Play» нам нужно создать учетные данные - идентификатор клиента OAuthс помощью SHA-1 сертификата подписи приложения внутри учетных данных в консоли API.

Теперь, где взять этот SHA-1 сертификата подписи приложения?

  1. Выберите приложение в консоли Play
  2. Перейдите на Управление релизами
  3. Выберите Подписание приложения
  4. Теперь скопируйте отпечаток сертификата SHA-1 из раздела «Сертификат подписи приложения»
  5. Создайте новые учетные данные в Консоли Google API (Google Cloud Platform), используя скопированный отпечаток SHA-1

То естьЭто.Теперь, когда вы запустите приложение и вызовите API, оно будет работать .

0 голосов
/ 01 октября 2018

Существует способ авторизации ваших приложений для Android с использованием Google Drive API .

Запросы на авторизацию в Android отличаются от других рабочих процессов авторизации из-за интеграции со службами Google Play .

В отличие от других рабочих процессов, авторизация в Android использует SHA1 отпечаток пальца и имя пакета для идентификации вашего приложения вместо client ID и client secret.

Вы должны выполнить надлежащий процесс авторизации, чтобы протестировать свой APK в консоли Play.

Вот руководство по генерации отпечатка сертификата подписи и регистрации вашего приложения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...