Ошибка Google Api и android Oauth INVALID_AUDIENCE
Я получаю GoogleAuthException: Unknown error
, делая GoogleAuthUtil.getToken
.
Как раз перед исключением я вижу
GLSUser: GLS error: INVALID_AUDIENCE <email> audience:server:client_id:xxx.apps.googleusercontent.com
Я установил SHA1 из моего ключа release, имя пакета, в проект google api. (Что, кстати, успешно используется для GCM.)
Ответы
Ответ 1
Похоже, это должно сработать; здесь код-init-init из моего приложения, который работает.
private static final String SCOPE = "audience:server:client_id:" + SERVER_CLIENT_ID;
Так что мне пахнет, как проблема с идентификатором клиента. Помните, что
- У вас должен быть проект с двумя идентификаторами клиентов
- Один из них подходит для вашего приложения для Android, с SHA и пакетом и т.д.
- Другое для серверной стороны, что вы собираетесь отправить токен на
Идентификатор клиента от # 3, который идет после...: client_id:
Ответ 2
Случилось одно в моей команде, хотя на моем устройстве все нормально работало.
Это оказалось из-за другого debug.keystore
на наших установках затмения.
Чтобы решить проблему, мы скопировали файл debug.keystore
компании ~/.android/
(это каталог на mac, он отличается от linux и windows)
Ответ 3
Решите это, удалив ваш debug.keystore, найденный в вашей папке .android, затем снова запустите новый проект, чтобы создать новый файл debug.keystore.
Затем, наконец, создайте новый сертификат подписи SHA-1 для Google API.
Ответ 4
Также вам нужно настроить экран авторизации oAuth в консоли Google API.
Вот почему я получил эту ошибку
Ответ 5
В целях документирования моей проблемы
У меня была такая же ошибка INVALID_AUDIENCE, что и при входе в Google через приложение AWS Mobile Hub. Несколько вещей, чтобы проверить,
Подобно тому, как Тим Брей замечает, что вы делаете свой идентификатор клиента действительным идентификатором веб-клиента (а не Android). Но также имеет идентификатор клиента Android, который имеет как надлежащий SHA-1 Fingerprint (найденный в debug.keystore, который Android Studio использует для подписи сборки отладки при нажатии кнопки "Выполнить" ) и имени пакета.
ПРИМЕЧАНИЕ. Имя пакета, указанное в AndroidManifest.xml, не всегда является фактическим именем пакета. Чтобы найти окончательное имя пакета, перейдите в файл build.gradle и посмотрите поле applicationId. Обязательно введите правильное имя пакета в Консоль разработчика при настройке идентификатора клиента Android.