Google api 强制google显示帐户选择器和同意屏幕
我可以分别使用Google api 强制google显示帐户选择器和同意屏幕,google-api,google-oauth,omnicontacts-gem,Google Api,Google Oauth,Omnicontacts Gem,我可以分别使用prompt=approve和prompt=select\u account,但谷歌似乎不允许我将它们结合使用。我尝试了的回答中建议的prompt=approve+select\u account,但失败了,错误是:“无效提示:approve+select\u account” doc()上写着“一个空格分隔的列表”,所以我尝试了同意选择\u account,但是失败了:“在这台服务器上找不到请求的URL。” 我还尝试将prompt=select\u account和approva
prompt=approve
和prompt=select\u account
,但谷歌似乎不允许我将它们结合使用。我尝试了的回答中建议的prompt=approve+select\u account
,但失败了,错误是:“无效提示:approve+select\u account”
doc()上写着“一个空格分隔的列表”,所以我尝试了同意选择\u account
,但是失败了:“在这台服务器上找不到请求的URL。”
我还尝试将prompt=select\u account
和approval\u prompt=force
结合起来,但谷歌也不喜欢这样
还有谁有幸将同意屏幕和帐户选择器结合起来
更新:
这是我创建URL的JavaScript方法,用于从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");
}
我尝试过集体和单独设置
提示符
和批准提示
,但似乎不起作用 我刚刚尝试了这个,当空格分隔时,它确实起作用了:
选项[:提示符]=“选择账户同意”您需要添加:
访问类型=在线&提示符=选择账户+同意
:
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";
导致错误
以空格分隔、区分大小写的提示列表,用于显示用户。如果未指定此参数,则仅在应用程序首次请求访问时才会提示用户。可能的值为:
无不显示任何验证或同意屏幕。不能与其他值一起指定。
同意提示用户同意。
选择账户提示用户选择账户
如果内存可用,那么提示是比较老的方式,谷歌在2012年的某个时候增加了提示。实际上,我在approval\u提示符上找不到任何文档,但如果内存可用,它与执行prompt=Approve相同,只是再次请求访问
prompt=选择账户+同意
有意义