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";

导致错误

  • 那是个错误
  • 错误:无效的\u请求

    冲突参数:批准提示和提示

    提示和批准提示参数不能一起使用

    可选

    以空格分隔、区分大小写的提示列表,用于显示用户。如果未指定此参数,则仅在应用程序首次请求访问时才会提示用户。可能的值为:
    不显示任何验证或同意屏幕。不能与其他值一起指定。
    同意提示用户同意。
    选择账户提示用户选择账户


    如果内存可用,那么提示是比较老的方式,谷歌在2012年的某个时候增加了提示。实际上,我在approval\u提示符上找不到任何文档,但如果内存可用,它与执行prompt=Approve相同,只是再次请求访问

    prompt=选择账户+同意
    有意义