Использование клиентского API Google в Android без менеджера аккаунта - PullRequest
3 голосов
/ 19 марта 2012

Я сейчас пытаюсь написать диспетчер задач в Android, который синхронизируется с задачами Google.Приложение использует API клиента Google вместе с AccountManager для связи с серверами Google.Работает под андроидом.Тем не менее, я хочу запустить его под Android Player на Blackberry Playbook.Хотя файл .apk преобразуется в приложение BlackBerry, похоже, что AccountManager не работает в Playbook Android Player, поскольку он не привязан к учетной записи Google.Мне трудно общаться с серверами Google без менеджера аккаунта.Я попытался добавить учетную запись вручную в AccountManager, но также выдает исключение безопасности.Мне интересно, есть ли другой способ авторизации в сервисах гугл с указанием имени пользователя и пароля (вместе с ключом API для доступа)?Спасибо

1 Ответ

1 голос
/ 14 мая 2012

AccountManager и Сервисы Google Play, которые позволяют вам проходить процедуру авторизации OAuth 2.0 с собственным интерфейсом на Android (только для API Google), доступны только на устройствах Google Experience. Эмулятор Android Blackberry Playbook, скорее всего, не является средой Google Experience.

Таким образом, в этом случае лучший способ - реализовать поток OAuth 2.0 с помощью WebView. Это также метод, который вам нужно использовать для API сторонних разработчиков (Facebook, Microsoft, Salesforce, Dailymotion, ...)

По сути, вам придется отправлять новых пользователей по специальному URL-адресу в WebView, где Google (или другой поставщик OAuth 2) попросит их предоставить вам доступ к запрошенным API-интерфейсам. Затем вам нужно будет извлечь код авторизации из URL-адреса или из содержимого страницы, как только он будет сгенерирован и возвращен серверами аутентификации Google. Последний шаг - обмен этого кода авторизации на обновление и токен доступа.

Вам необходимо прочитать и понять, как работает поток авторизации OAuth 2.0 для Установленного приложения: https://developers.google.com/accounts/docs/OAuth2#installed

Шаг за шагом, чтобы сделать OAuth 2.0 с WebView на Android, выглядит следующим образом:

  • Перенаправить пользователей на URL экрана предоставления в встроенном WebView
  • Используйте http://localhost в качестве URI перенаправления
  • Регистрация WebViewClient с помощью метода onPageStarted для перехвата изменений страницы
  • Обнаружение успешной / неудачной авторизации путем обнаружения перенаправлений на http://localhost и считывания кода авторизации с URL-адреса WebView
  • Завершите поток OAuth 2, обменяв код авторизации на токены, и сохраните эти токены в локальной базе данных для дальнейшего использования.

Вы можете найти образец с открытым исходным кодом, который делает это на Onavo's GitHub .

...