Уф. должен любить OAuth ...
TL; DR; код 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
Мой Activity.xml:https://pastebin.com/KELRqYHD И (идет с шаблонами студии Android ...) https://pastebin.com/Bbev37ye <--- содержимое для указанной выше вставки
no code pasted once again because long-ish
Я считаю, что это либо версия Android, либо учетная запись Google, либо устройство, и я не могу его сузить.
В любом случае, я был бы признателен за любую помощь в том, чтобы заставить это работать для всех, а не только для горстки людей, как я уже сказал, это работает только для меня и половины моих друзей. Благодарность!
Редактировать: При повторном появлении сообщения об ошибке в logcat не возникает. код скачет повсюду (я пробовал помещать сообщения журнала в каждый фрагмент кода, чтобы увидеть, куда он идет, а где дает сбой - до бесконечности)
Вы можете установить Параметры авторизации для создания запроса авторизации.
You can
prompt
the user to re-authorize your app by adding theprompt=consent
parameter to the authentication request. Whenprompt=consent
is included, the consent screen is displayed every time the user logs into your app. For this reason, includeprompt=consent
only when necessary.Optional. A space-delimited, case-sensitive list of prompts to present the user. If you don't specify this parameter, the user will be prompted only the first time your app requests access. Possible values are:
none
- The authorization server does not display any authentication or user consent screens; it will return an error if the user is not already authenticated and has not pre-configured consent for the requested scopes. You can use none to check for existing authentication and/or consent.consent
- The authorization server prompts the user for consent before returning information to the client.select_account
- The authorization server prompts the user to select a user account. This allows a user who has multiple accounts at the authorization server to select amongst the multiple accounts that they may have current sessions for.
Примечание: Если значение не указано и пользователь ранее не авторизовал доступ, то пользователю отображается экран согласия.
Извините за путаницу, это для подключения openID - позволяет клиентам всех типов, включая веб-клиенты, мобильные клиенты и клиенты JavaScript, запрашивать и получать информацию об аутентифицированных сеансах и конечных пользователях.
Я все еще в замешательстве? это также для Android Java?