OAuth работает только для некоторых учетных записей Google? - PullRequest
0 голосов
/ 10 октября 2018

Уф.должен любить OAuth ...

TLDR;код OAuth 2.0, который мне удалось собрать из единственного примера проекта API календаря Android, который я смог найти, работает только на нескольких учетных записях.

Половина моих друзей щелкает серый диалог своей Gmail и выбирает их учетную запись, появляется белый + синий экран с просьбой дать согласие и бумсобытия извлекаются из календаря Google.

другая половина моих друзей нажимает на серый текст диалога в своей Gmail, и экран согласия не появляется, и он просто мигает серым диалогом с их Gmail, предлагая им выбрать ихснова аккаунт.

Вот код булыжника:

Моя деятельность java: https://pastebin.com/mcxLfGZR

no code pasted because its very long

Apisynctask.java, чтобы пойти с ним: https://pastebin.com/p7Wx2Lm2

no code pasted once again

My Activity.xml: https://pastebin.com/KELRqYHD AND (продолжается, потому что шаблоны для Android Studio ...) https://pastebin.com/Bbev37ye <--- содержимое вышеуказанной вставки </p>

no code pasted once again because long-ish

Я считаю, что это либо версия для Android, аккаунт Google или устройство, связанное с ним, и не может сузить его вообще.

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

Редактировать: в logcat не выдается никакой ошибки при повторном всплывающем окне.код перепрыгивает повсюду (я пытался поместить сообщения loge в каждый кусок кода, чтобы увидеть, куда он идет и где он терпит неудачу - без конца)

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете установить Параметры авторизации для создания запроса на авторизацию.

Вы можете prompt пользователя повторно авторизовать ваше приложение, добавив параметр prompt=consentна запрос аутентификации.Если включено prompt=consent, экран согласия отображается каждый раз, когда пользователь входит в ваше приложение.По этой причине включайте prompt=consent только при необходимости.

prompt

Необязательно .Разделенный пробелами, чувствительный к регистру список подсказок для представления пользователю.Если вы не укажете этот параметр, пользователю будет предложено только первый раз, когда ваше приложение запросит доступ.Возможные значения:

  • none - сервер авторизации не отображает экраны аутентификации или согласия пользователя;он вернет ошибку, если пользователь еще не аутентифицирован и не имеет предварительно настроенного согласия для запрошенных областей.Вы не можете использовать ни один, чтобы проверить существующую аутентификацию и / или согласие.
  • consent - Сервер авторизации запрашивает согласие пользователя перед возвратом информации клиенту.
  • select_account -Сервер авторизации предлагает пользователю выбрать учетную запись.Это позволяет пользователю, имеющему несколько учетных записей на сервере авторизации, выбрать среди нескольких учетных записей, для которых они могут иметь текущие сеансы.

Примечание: Если значение не указаноуказан, и пользователь не имел ранее авторизованного доступа, тогда пользователю показывается экран согласия.

...