到期后无法刷新令牌

我可以validation并获取access_token和相应的refresh_token罚款(后续API交互也很好)。

但是,我似乎只能在access_token实际到期之前刷新令牌(使用grant_type=refresh_token POST/oauth/token )。 到期后,相同的刷新代码(完全在文档中提供)将返回错误invalid_grant

我正在使用soundcloud-ruby SDK,FWIW,但我可以通过curl重现它。

顺便说一句,我发现谷歌集团的一些旧消息提到我可以请求一个非过期的令牌,但我没有在文档中的任何地方看到这一点。 这仍然是一个可行的选择吗?

那是正确的。 访问令牌过期后,无法使用刷新令牌。

通过在构造授权URL时指定scope=non-expiring ,可以请求非过期访问令牌。 要使用Ruby SDK执行此操作,只需将其他参数传递给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') 

流的其余部分应该完全相同(从查询字符串中获取’code’参数并向/oauth2/token发出POST请求)。