我正在访问gmail API。我正在使用ruby来获取访问令牌。但是,我需要用访问令牌来获取刷新令牌。我正在使用signet作为这里的建议。https://readysteadycode.com/howto-access-the-gmail-api-with-ruby
代码如下所示
client = Signet::OAuth2::Client.new({
client_id: ENV.fetch('GOOGLE_API_CLIENT_ID'),
client_secret: ENV.fetch('GOOGLE_API_CLIENT_SECRET'),
token_credential_uri: 'https://accounts.google.com/o/oauth2/token',
redirect_uri: url_for(:action => :callback),
code: params[:code]
})
// this is undefined
refre_token = client.refresh_token
response = client.fetch_access_token!
access_token = response['access_token']
我尝试按照here的建议添加其他参数,如下所示
additional_parameters: {
"access_type" => "offline", # offline access
"include_granted_scopes" => "true", # incremental auth
}
但client.new似乎没有任何效果。
如何从Signet::OAuth2获取刷新令牌?
1条答案
按热度按时间q9yhzks01#
刷新令牌仅在您第一次通过身份验证时显示。
按照以下步骤删除存储的访问权限,以便您可以像第一次一样进行身份验证。
管理您的谷歌帐户-〉安全-〉管理第三方访问-〉您的应用名称-〉删除访问
注意:从我的测试来看,似乎不需要附加参数属性。