Подтвердить что ты не робот

Ошибка Google 400: неверный запрос Пользовательские схемы URI не разрешены для типа клиента "Web"

Когда я вхожу в Gmail в моем приложении iOS, я получаю следующую ошибку (скриншот), и поля входа не отображаются. Мы загружаем экран входа в WKWebView.

  • Мы используем настраиваемый URI-переадресацию, но почему Google теперь бросает эту ошибку. Каковы альтернативы пользовательскому URI?
  • Проект Swift 2.3
  • Использование OAuthSwift v0.6.0 cocoapod
  • Это началось совсем недавно только на прошлой неделе или около того, я считаю, что что-то изменилось с помощью API Google.

Я прочитал, что google - это обесценение веб-просмотров для OAuth и блокирует запросы 20 апреля 2017 года. Как видно из этого в блоге разработчиков Google: https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html

Означает ли это, что мне уже нужно использовать или есть другое жизнеспособное решение? Я думал, что у меня было больше времени, прежде чем нужно было это обновить.

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

4b9b3361

Ответ 1

Я предполагаю, что ваш клиент зарегистрирован неправильно в Google Cloud Console. Клиент "WEB" обычно является сервером или Javascript-приложением. Приложение iOS должно быть зарегистрировано как клиент iOS.

https://developers.google.com/identity/protocols/OAuth2InstalledApp#creatingcred

Ответ 2

Я тоже нашел эту проблему.
Проверьте консоль разработчика Google и посмотрите ключи учетных данных
Идентификатор вашего клиента в google-info plist должен поступать из приложения iOS, а не из Интернета.
И используйте этот идентификатор клиента для revereseClientID и скопируйте его в тип URI

Ответ 3

Я просто испытал эту проблему, следуя руководству Google Signin for iOS. Файл, созданный с помощью plist, не является хорошим. Вам нужно взглянуть на clientID и reverseedClientID и быть уверенным, что они являются приложениями для iOS на вашем портале разработчика Google.

Ответ 4

Я решил проблемы, создав проект в Fire Base. Поскольку REVERSED_CLIENT_ID генерируется с developers.google.com Неверно. Попробуйте создать свой проект в FireBase https://console.firebase.google.com

Ответ 5

вы должны перекрестно проверить clientId на вашем "Google Dashboard" clientId и clientId в "GoogleProject.Plsit". Если оба варианта отличаются, скопируйте ClientID из "Google Dashboard" и вставьте его в "GoogleService-Info.Plsit". измените ваш reverseClientId в "GoogleService-Info.Plsit" в соответствии с недавно вставленным ClientID (вы проверяете шаблон, как reverseClientId создан из идентификатора клиента в "GoogleService-Info.Plsit" ). И затем вставьте в свой проект значение tht reverseClientId в "Тип URL".

В случае, если my clientId на "GoogleService-Info.Plsit", а моя "Панель управления Google" отличается. chech your google dashboard здесь: https://console.developers.google.com/apis/credentials?project=firebase

Ответ 6

Я столкнулся с этой ошибкой после создания файла GoogleService-Info.plist с помощью сайта Вход в Google перенаправляет вас. Позднее я начал использовать Firebase, который, похоже, создает отдельный файл .plist. После попытки включить новый файл .plist Firebase, моя кнопка входа в Google начала приводить к ошибке invalid_request с сообщением Custom scheme URIs are not allowed for WEB client type.

Чтобы исправить проблему, я пробовал много вещей, но в конце концов удалил проект MY ENTIRE Firebase на своей веб-консоли (а не только в отдельном приложении), воссоздав новый проект Firebase с нуля, и повторная загрузка нового файла .plist, устранена ошибка.

Ответ 7

Он создает два идентификатора клиента. один для Интернета и один для приложения iOS. По умолчанию веб-клиент будет находиться в google plist. Таким образом, это дает вышеприведенную ошибку. Используйте идентификатор клиента iOS с консоли Google или создайте учетные данные для приложения iOS.

Ответ 8

Я получал ту же ошибку. Затем я понял, что я не предоставил идентификатор Bundle приложения для доступа к службе входа в Google в своем приложении. Вы делаете это со страницы со ссылкой:

https://developers.google.com/mobile/add?platform=ios&cntapi=signin&cnturl=https:%2F%2Fdevelopers.google.com%2Fidentity%2Fsign-in%2Fios%2Fsign-in%3Fconfigured%3Dtrue&cntlbl=Continue%20Adding%20Sign-In

1. Войдите в свою учетную запись разработчика Google.

2.Создайте имя приложения и скопируйте идентификатор приложения из своего проекта:  Project и Target List > General > Bundle Identifier.

3.Выберите свою страну

4.Enable Google-Вход.

Затем выполните необходимые шаги для интеграции входа Google в приложение iOS.

Ответ 9

Я столкнулся с той же проблемой. Я выполнил все инструкции по интеграции своего приложения несколько раз и играл с кодом, чтобы узнать, есть ли какая-либо скрытая проблема в коде. Я загрузил и настроил пример приложения из Google в github https://github.com/googlesamples/google-services и пошел той же проблемой, поэтому это был не код.

Казалось, что есть что-то в моей конфигурации консоли, поэтому я переключался между различными консольными приложениями Google и играл с изменением идентификаторов пакетов.

Единственное, что удалось исправить, это использовать Firebase. Я создал приложение в консоли firebase, загрузил новый plist, и он сработал.

Все еще не уверен, почему это не помогло мне в первую очередь, это, похоже, не является общей проблемой, но я надеюсь, что это поможет кому-то. приветствия,

Ответ 10

Просьба проверить console.developers.google.com/apis/credentials для вашего проекта и посмотреть, есть ли уже клиент_ид в разделе идентификаторов клиентов OAuth 2.0, если это так, то скопируйте этот идентификатор клиента и замените его на GoogleService-Info. plist file CLIENT_ID и соответственно измените REVERSED_CLIENT_ID (в обратном порядке), теперь очистите и создайте приложение и протестируйте его, чтобы он работал.

Ответ 11

По моему опыту, я выполнил руководство Google SignIn iOS Swift и загрузил файл Web OAuth JSON. Они буквально предоставляют вам неправильный файл Plist для установки iOS.

На всякий случай кто-то еще сталкивается с этой проблемой, вот шаги, которые я выполнил:

  • Перейдите в консоль Google Developers.
  • Перейдите в раздел "Учетные данные".
  • Обратите внимание, что в разделе "Идентификаторы клиентов OAuth 2.0" есть два элемента. (Если вы ранее пытались настроить проект iOS Google SignIn.
  • Нажмите на имя "клиент iOS для".
  • Нажмите "Загрузить файл PLIST".
  • Удалите файл Plist Google в вашем проекте.
  • Поместите новый файл Plist на iOS.
  • Скопируйте новый REVERSED_CLIENT_ID в свой URL-адрес Типы страницы Info вашего проекта. (Это подробно описано в руководстве Google).
  • Попробуйте снова запустить приложение.

Примечание. Я получил API входа в Google для работы с Swift v3 и XCode v8.