Ruby on rails 停止从google获取刷新令牌';s API

Ruby on rails 停止从google获取刷新令牌';s API,ruby-on-rails,ruby,ruby-on-rails-4,google-api,google-drive-api,Ruby On Rails,Ruby,Ruby On Rails 4,Google Api,Google Drive Api,因此,我有一个带有ruby on rails的web应用程序,可以连接到google drive的API。到目前为止,它一直接收刷新令牌,因为我使用的一个参数是脱机的。但最近它停止了。正在发送的url如下所示: Redirected to https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=ID&options=%7B:access_type=%3E%22offline%22,%20:ap

因此,我有一个带有ruby on rails的web应用程序,可以连接到google drive的API。到目前为止,它一直接收刷新令牌,因为我使用的一个参数是脱机的。但最近它停止了。正在发送的url如下所示:

Redirected to https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=ID&options=%7B:access_type=%3E%22offline%22,%20:approval_prompt=%3E%22force%22%7D&redirect_uri=http://localhost:3000/oauth2callbackdrive&response_type=code&scope=https://www.googleapis.com/auth/drive%20https://www.googleapis.com/auth/userinfo.email
重定向到URI的代码包含以下内容:

client = Google::APIClient.new
client.authorization.client_id = GOOGLE_CLIENT_ID
client.authorization.client_secret = GOOGLE_CLIENT_SECRET
client.authorization.scope = SCOPES
client.authorization.redirect_uri = GOOGLE_CLIENT_REDIRECT_URI
auth_url = client.authorization.authorization_uri(:options => {:access_type => :offline, :approval_prompt => :force}.to_s)
redirect_to auth_url.to_s
在回调函数中,我有以下内容:

client = Google::APIClient.new
client.authorization.client_id = GOOGLE_CLIENT_ID
client.authorization.client_secret = GOOGLE_CLIENT_SECRET
client.authorization.scope = SCOPES
client.authorization.redirect_uri = GOOGLE_CLIENT_REDIRECT_URI
client.authorization.code = params['code']          
client.authorization.fetch_access_token!
在同一个函数中,我将插入数据库:

CloudAccount.create(username: username,access_token:client.authorization.access_token, refresh_token:client.authorization.refresh_token,register_id:userID,cloud_name:'drive')
问题是,client.authorization.refresh_令牌(以前有一个值)现在返回空,因此它被作为NULL插入到数据库中。这会在访问令牌过期时影响上载/刷新/下载

我能做什么?我做错了什么


谢谢。

我也遇到了类似的问题()。我认为如果你使用:
prompt='select_账户同意书'

然后,这将强制一个新的批准屏幕,您将获得一个新的刷新令牌


参考资料:

我认为当时不存在这种情况。:)我接受你的答案,因为它可能会帮助人们使用新版本的API