Ответ 1
Я просто попробовал это, и он работал с разделителем по размеру:
options [: prompt] = 'select_account agree'
Я могу использовать как prompt=consent
, так и prompt=select_account
отдельно, но Google, похоже, не позволяет мне их комбинировать. Я попробовал prompt=consent+select_account
, как это было предложено в ответе Заставить команду выбора учетной записи google, но с ошибкой не получается: "Неверное приглашение: согласие + select_account".
Doc (https://developers.google.com/accounts/docs/OAuth2Login) говорит "Список с разделителями пробела", поэтому я попробовал consent select_account
, но это не удалось: "Запрошенный URL-адрес не найден на этом сервере."
Я также пробовал комбинировать prompt=select_account
и approval_prompt=force
, но Google тоже не нравится.
Кому-то еще повезло с объединением экрана согласия и выбора аккаунта?
Update:
Это мой метод JavaScript, создающий URL-адрес для получения контактов из gmail
$scope.importGmailContacts = function() {
provider = 'gmail';
$scope.importing_from_gmail = true;
window.open(protocol + "://" + host + ":" + port + "/contacts/gmail", "_blank",
"toolbar=yes, scrollbars=yes, resizable=yes, top=0, left=0, width=600, height=600, prompt='select_account+consent', approval_prompt=force");
}
Я попытался установить prompt
и approval_prompt
как коллективно, так и индивидуально, но, похоже, не работает. Обратитесь к этому вопросу.
Я просто попробовал это, и он работал с разделителем по размеру:
options [: prompt] = 'select_account agree'
Вам нужно добавить: access_type=online&prompt=select_account+consent
:
private static final String AUTHORIZE_URL
= "https://accounts.google.com/o/oauth2/auth?"
+ "response_type=code&access_type=online&prompt=select_account+consent"
+ "&client_id=xxx&redirect_uri=xxx";
private static final String SCOPED_AUTHORIZE_URL = AUTHORIZE_URL + "&scope=xxx";
..
Результаты ошибки
- Это ошибка.
Ошибка: invalid_request
Параметры конфликта: confirm_prompt и prompt
Параметры запроса и утверждения не могут использоваться вместе.
prompt Необязательно.
Список запросов с указанием пробелов, учитывающий регистр, для представления пользователю. Если вы не укажете этот параметр, пользователю будет предложено только в первый раз, когда ваш запрос приложения получит доступ. Возможные значения:
none Не показывать экраны проверки подлинности или согласия. Нельзя указывать другие значения.
согласие. Подтвердите согласие пользователя.
select_account. Попросите пользователя выбрать учетную запись.
Если память обслуживает assert_prompt, это более старый способ сделать это, а google добавлен в некоторое время в 2012 году. Я не могу найти какую-либо документацию на author_prompt больше, но если память обслуживается, то она была такой же, как и приглашение = разрешить, просто запрашивая доступ снова.