原谅我,如果这是一个愚蠢的问题,新手程序员在这里。验证Rails应用程序瓦特/ Soundcloud,获取401未授权错误:invalid_grant
我想在我的Rails 3.2.14应用程序中使用Soundcloud API对用户进行身份验证。我直接使用的代码从的SoundCloud开发文档,就像这样:
client = Soundcloud.new(
:client_id => 'MY_CLIENT_ID',
:client_secret => 'MY_CLIENT_SECRET',
:redirect_uri => 'http://localhost:3000/auth/soundcloud/callback'
)
# redirect user to authorize URL
redirect_to client.authorize_url(:scope => 'non-expiring')
当我得到的回调URI:
client = Soundcloud.new(
:client_id => 'MY_CLIENT_ID',
:client_secret => 'MY_CLIENT_SECRET',
:redirect_uri => 'http://localhost:3000/auth/soundcloud/callback'
)
# exchange authorization code for access token
code = params[:code]
access_token = client.exchange_token(:code => code)
一切工作正常(我带到的SoundCloud页面给我的应用权限),但是当我送回回调URI我收到以下错误:
SoundCloud::ResponseError at /auth/soundcloud/callback
HTTP status: 401 Unauthorized Error: invalid_grant
我显然一派这和做出的唯一建议是,我的令牌到期。这对我来说没有意义,因为我以后不会重用access_token,我只是在进行初始身份验证。以防万一我将范围=>未过期参数包含在重定向到Soundcloud时,这没有什么区别。
有什么建议吗?最近有没有人成功地将Rails与Soundcloud整合在一起?我发现的所有资源都显得过时了。
我在我的应用程序中使用Soundcloud宝石,效果很好。我遵循同样的过程,所以我对这个错误感到困惑。当我尝试交换refresh_token以获取access_token时,我遇到了此错误。但使用非到期令牌修复它。我会检查client_id和client_secret是否准确。我也会打印出'代码'来检查它是否为空。 – Mahesh