Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oauth2谷歌api ruby客户端:如何将审批提示设置为自动?_Ruby_Google Api_Oauth 2.0_Google Plus - Fatal编程技术网

Oauth2谷歌api ruby客户端:如何将审批提示设置为自动?

Oauth2谷歌api ruby客户端:如何将审批提示设置为自动?,ruby,google-api,oauth-2.0,google-plus,Ruby,Google Api,Oauth 2.0,Google Plus,问题: 如何将审批提示设置为自动?默认为“批准\提示=强制” 代码: 我正在这样设置客户 @client = Google::APIClient.new( :authorization => :oauth_2, :host => 'www.googleapis.com', :http_adapter => HTTPAdapter::NetHTTPAdapter.new ) @client.authorization.clie

问题: 如何将审批提示设置为自动?默认为“批准\提示=强制”

代码: 我正在这样设置客户

   @client = Google::APIClient.new(
     :authorization => :oauth_2,
     :host => 'www.googleapis.com',
     :http_adapter => HTTPAdapter::NetHTTPAdapter.new
   )   
   @client.authorization.client_id = 'xxxx.apps.googleusercontent.com'
   @client.authorization.client_secret = 'xxxx'
上下文:GoogleOAuth2

客户端库:GoogleAPI ruby客户端

参考:php客户端的相同问题:

图章文件。我找不到批准提示设置程序
这就是我解决问题的方法

我编写了一个单独的助手方法来生成GoogleOAuthURI

def build_auth_uri
return @client.authorization.authorization_uri(
 :approval_prompt => :auto
).to_s 
结束

接下来,我没有在视图中直接引用GoogleOAuthURI,而是调用了helper


这就成功了

我就是这样解决这个问题的:

在/app/views/design/shared/_links.haml中(类似于_links.erb):

编辑:更简单:将其添加到designe.rb或omniauth.rb初始值设定项(在/config/initializers中):

查看文档了解更多信息

- if devise_mapping.omniauthable?
  - resource_class.omniauth_providers.each do |provider|
    - if provider == :google_oauth2
      = link_to "Sign in with Google", omniauth_authorize_path(resource_name, provider, approval_prompt: :auto)
    - else
      = link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider)
    %br/
provider :google_oauth2, ENV["GOOGLE_KEY"], ENV["GOOGLE_SECRET"], {
  approval_prompt: "auto"
}