Google OAuth Client с помощью Angular/Ionic: как найти redirect_uri?

У меня есть приложение Ionic2, которое я хотел бы добавить GooglePlus Authentication в.

Я получаю следующую ошибку:

введите описание изображения здесь

Насколько я понимаю, это потому, что я не настроил redirect_uri.

Вопрос

Что redirect_uri (Authorized redirect URIs) следует использовать для приложения Ionic2? Где его найти?

enter image description here

Следующее работает с Facebook login.

введите описание изображения здесь

UPDATE

Следуя этим инструкциям, я изменил REVERSED_CLIENT_ID на следующий формат:

"com.googleusercontent.apps.uniqueId"

Итак, я думаю, что добился прогресса.

Теперь я получаю следующую ошибку в iOS:

введите описание изображения здесь

Из чтения здесь, это означает, что credentials не следует создавать для Web Application . Но если я создам его для iOS, как это будет работать для Android? Или Android не использует эти учетные данные в любом случае?

Для Android, когда я пытаюсь войти в систему, я просто получаю исключение с сообщением об ошибке undefined.

Итак, у меня есть два вопроса:

  • Нужно ли мне создавать iOS идентификатор клиента здесь вместо Web Application?

введите описание изображения здесь

  1. Как настроить или отладить это для Android?

UPDATE

Для iOS я добавил iOS Client Id и изменил свой идентификатор REVERSED CLIENT для соответствия, и, как и с помощью Android, он попросил меня войти в мою учетную запись Google. Таким образом, это выглядит как дальнейший прогресс.

Однако, как только я вхожу, как с Android, теперь я получаю исключение с сообщением как undefined. Однако в консоли Xcode я получаю следующее:

Ошибка com.google.HTTPStatus 400.

Следуя этим, теперь я создал учетные данные для iOS и Android.

введите описание изображения здесь

Я установил идентификаторы Android и iOS в новых идентификаторах.

Я получаю исключение с сообщением как undefined на обоих Android and iOS.

UPDATE

Сработало для iOS. Опция webClientId при вызове login не должна быть обратным идентификатором клиента, а скорее идентификатором клиента.

        GooglePlus.login({
            'webClientId': 'xxxxx.apps.googleusercontent.com',
            'offline': true
        }).then(googleData => {

Теперь, чтобы понять, почему Android не работает.

В Android я теперь получаю error = 12501 (что является результатом чего-то неправильного с моим хранилищем ключей, я думаю).

UPDATE

Я создаю хранилище ключей. По эти инструкции, я скопирую SHA1 в Signing-certificate fingerprint. Но все равно получите error = 12501.

enter image description here

Ответ 1

Поскольку вы работаете с iOS, вот решение для Android.

Создайте APK своего приложения, а затем запустите эту команду -

keytool -list -printcert -jarfile app.apk

На выходе будет отображаться Signature, Certificate fingerprints (MD5, SHA1 and SHA256) и Extensions APK.

Скопируйте SHA1 в Signing-certificate fingerprint при создании идентификатора клиента для android