#xamarin.forms #google-authentication #xamarin.essentials
#xamarin.forms #google-аутентификация #xamarin.essentials
Вопрос:
Я уже некоторое время пытаюсь получить информацию о календаре Google от пользователя Google в Xamarin.Формы.
Я начал свой путь с использования Xamarin.Auth но я не смог преодолеть проблему, из-за которой после входа в систему пользовательская вкладка в моем приложении для Android не закрывалась. Похоже, это постоянная проблема уже много лет, и несколько человек предложили хаки, чтобы обойти эту проблему. Я отказался от Xamarin.Аутентификация на этом этапе
Итак, я попытался использовать Xamarin.Формирует веб-аутентификатор для получения информации о календаре. В документации не упоминается, как пройти аутентификацию с помощью Google, поэтому я попробовал это
var authResult = await WebAuthenticator.AuthenticateAsync(
new Uri("https://accounts.google.com/o/oauth2/auth"), // auth url
new Uri("packageNameOfMyApp://"); // redirect url
Я получаю ошибку недопустимого запроса
Как мне выбрать первый параметр AuthenticateAsync для правильной аутентификации в Google? Должен ли я каким-то образом кодировать идентификатор клиента из моего приложения, который я получил после настройки входа в приложение через консоль разработчика Google?
Комментарии:
1. Попробуйте использовать
https://accounts.google.com/o/oauth2/v2/auth
в качестве первого параметра.2. Я все еще получаю то же сообщение об ошибке (ошибка 400 недопустимый запрос)
3. То же самое на самом деле верно, если я нажму на эту конечную точку своим браузером
4. Проблема должна быть вызвана URL-адресом перенаправления.
5. Если я следую документации веб-аутентификатора, URL-адресом перенаправления должно быть имя приложения (я предполагаю, что имя пакета, указанное в файле манифеста), за которым следует:// Я попытался изменить этот URL-адрес, но все равно получаю ту же ошибку. Я реализовал класс WebAuthenticatorCallbackActivity, как предложено в документации
Ответ №1:
Невозможно использовать WebAuthenticator с Google. Google требует, чтобы для проверки подлинности использовался веб-браузер, и не разрешает вашему приложению проходить проверку подлинности самостоятельно. По той же причине подход, при котором вы используете WebView в своем приложении для перехода на сайт аутентификации Google, завершится неудачей