Google Drive Api перестает работать после публикации приложения в Google Play - PullRequest
0 голосов
/ 09 февраля 2020

В моем приложении я использую Google Drive API, но при установке приложения через Google Play я получаю следующее сообщение:

  com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
    {
      "code": 403,
      "errors": [
        {
          "domain": "usageLimits",
          "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.",
          "reason": "dailyLimitExceededUnreg",
          "extendedHelp": "https://code.google.com/apis/console"
        }
      ],
      "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup."
    }
        at d.f.b.a.b.d.a.b.newExceptionOnError(AbstractGoogleJsonClientRequest.java:2)
        at d.f.b.a.b.d.a.b.newExceptionOnError(AbstractGoogleJsonClientRequest.java:1)
        at d.f.b.a.b.d.b.a(AbstractGoogleClientRequest.java:5)
        at d.f.b.a.c.p.a(HttpRequest.java:88)
        at d.f.b.a.b.d.c.executeUnparsed(AbstractGoogleClientRequest.java:3)
        at d.f.b.a.b.d.c.executeUnparsed(AbstractGoogleClientRequest.java:1)
        at d.f.b.a.b.d.c.execute(AbstractGoogleClientRequest.java:1)

Мой код соответствует примеру Google :

final GoogleAccountCredential credential =
                GoogleAccountCredential.usingOAuth2(
                        this, Collections.singleton(DriveScopes.DRIVE_FILE));
        credential.setSelectedAccount(googleAccount.getAccount());
        final Drive googleDriveService =
                new Drive.Builder(
                        AndroidHttp.newCompatibleTransport(),
                        new GsonFactory(),
                        credential)
                        .setApplicationName(getString(R.string.app_name))
                        .build();

        mDriveServiceHelper = new DriveServiceHelper(googleDriveService);

mDriveServiceHelper.queryFiles()
                    .addOnSuccessListener(fileList -> {
                    // Logic to load the data

                    })
                    .addOnFailureListener(exception -> {
                        Log.e(TAG, "Unable to query files.", exception);
                        // This is where it fails
                    });

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

Я рассмотрел несколько примеров, таких как:

Я создал OAuth Токены с сертификатом подписи приложения от Google Play и SHA1 также включены в Firebase, который я включил в проект. Я также создал новые API-ключи, приложение не превысило дневной лимит.

Приложение работает локально успешно, я полагаю, из-за сертификата отладки, но не уверен, почему он не работает при загрузке из Google Play.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

У меня была эта ошибка из-за включенного минимизации:

        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

Ссылка Хулио содержит правила pro guard, которые решают эту проблему.

0 голосов
/ 09 февраля 2020

Это может быть связано с тем, что в вашем приложении Google Play установлено другое значение ключа SHA android. Вы должны включить подпись приложения Google при загрузке приложения в PlayStore, что приводит к появлению другого ключа SHA приложения в PlayStore. Вы можете получить этот ключ SHA из консоли Play. Добавьте этот ключ в ваш проект Firebase, и приложение должно работать нормально.

...