我可以验证和读取的和的access_token相应refresh_token细(后续API相互作用也是细)。
但是,我似乎只能够刷新令牌( POST
到/oauth/token
与grant_type=refresh_token
)在之前 access_token
已经到期。 期满后,相同的刷新代码(确切地,该文档中提供的),返回与的误差invalid_grant
。
我使用的SoundCloud - 红宝石SDK,FWIW,但我可以通过卷曲重现。
顺便说一句,我发现从谷歌集团的一些旧消息提的是,我可以要求一个永不过期的道理,但我不认为这在文档的任何地方提及。 这仍然是一个可行的选择?
那是对的。 接入令牌到期之后刷新令牌不能使用。
可以通过指定请求非过期的访问令牌scope=non-expiring
构建授权URL时。 为了与Ruby的SDK做到这一点,只需通过附加PARAMS到authorize_url
方法:
require 'soundcloud'
client = Soundcloud.new(
:client_id => 'YOUR_CLIENT_ID',
:client_secret => 'YOUR_CLIENT_SECRET',
:redirect_uri => 'REDIRECT_URI'
)
client.authorize_url(:scope => 'non-expiring')
流的其余部分应该是完全相同的(抓住从查询字符串中的“代码”参数,并作出POST
请求/oauth2/token
)。