, Они не требуют WebView.

аюсь перенести приложение Android с помощью OAuth 1.0a на OAuth 2.0. (используя клиентскую библиотеку Google API для Java / Android для моих нужд OAuth 2.0).

Какое наилучшее / предпочтительное решение для доступа к API Google с помощью OAuth 2.0 на платформе Android, которое также учитывает аспект удобства использования. Пользователь должен иметь возможность легко авторизовать доступ, легко интегрируясь с моим Android-приложением.

В настоящее время приложение использует веб-поток OAuth 1.0, где мое приложение открывает браузер, чтобы позволить пользователю авторизовать доступ, и с помощью пользовательского URI перенаправления мое приложение может получить токен доступа. Это работает довольно хорошо, но мне не понравился тот факт, что мне нужно выйти из приложения, чтобы открыть браузер для отображения веб-страницы. Я думал, что OAuth 2.0 мог бы обойти это, и учесть лучший пользовательский опыт.

Я начал смотреть наИнтеграция Adroid AccountManager-OAuth2, как описано в Google IOТак как он не использует веб-браузер и более тесно связан с Android, но он просто не работает так, как должен. Это не задокументировано, и неясно, останется ли это жизнеспособным вариантом в будущем.

Сейчас я начал исследовать стандартный веб-поток OAuth 2.0.

Здесь у меня, кажется, есть 2 варианта:

Настройте клиент OAuth 2.0 в качестве установленного приложения и используйте URL-адрес перенаправления urn: ietf: wg: oauth: 2.0: oob.

Не очень чистое решение, так как мои пользователи не будут копировать и вставлять код в мое приложение. Это совсем не удобно для пользователя.

Использование OAuth 2.0 для доступа к документам API Google Отметим, что есть какой-то способ опроса заголовка страницы, чтобы разобрать URL, но я также вижу много проблем с юзабилити с этим, и на самом деле не хочется писать такой код. Если бы существовала клиентская библиотека, которая бы сделала это для меня, я был бы рад исследовать это дальше, но сейчас я отказался от этой опции.

Настройте клиент OAuth 2.0 как веб-приложение и используйте URI перенаправления.

Здесь я заметил, что нестандартные схемы запрещены в OAuth 2.0. Раньше можно было использовать что-то вроде обратного вызова xoauth: //, но это больше не разрешено. При настройке URI перенаправления, какhttp://mysite.com/oauth2/callbackЯ не могу заставить Android открывать свою деятельность, когда перенаправляет страницу Google OAuth 2.0, несмотря на то, что для нее настроен правильный фильтр намерений.http://mysite.com/oauth2/callback просто отображается в моем браузере.

Следующее работает

Intent i = new Intent(Intent.ACTION_VIEW,Uri.parse("http://mysite.com/oauth2/callback"));
startActivity(i);

Но когда страница Google OAuth 2 перенаправляется на тот же URL-адрес, она просто отображается в браузере.

Даже если это сработает, пользователю все равно будет показано всплывающее окно выбора (откройте в браузере или откройте с помощью моего Android Activity). С точки зрения удобства использования, это также не приемлемо.

Я ищу лучшее решение, чем указано здесь.

С уважением, Дэви

Ответы на вопрос(2)

Ваш ответ на вопрос