我正在尝试从spotify api获取一个access_token。 spotify docs
但是我总是得到响应400,{"error"=>"invalid_grant", "error_description"=>"Invalid authorization code"}
我正在运行的代码原来是,authorization_code是来自控制器的,它是params[:code]
中返回的内容>
response = HTTParty.post( 'https://accounts.spotify.com/api/token', body: { grant_type: 'authorization_code', code: authorization_code, redirect_uri: redirect_uri } ), headers: { 'Authorization' => 'Basic ' + Base64.strict_encode64("#{client_id}:#{client_secret}"), } )
我读过有关表单编码的文章,所以我尝试过
response = HTTParty.post( 'https://accounts.spotify.com/api/token', body: URI.encode_www_form( { grant_type: 'authorization_code', code: authorization_code, redirect_uri: redirect_uri } ), headers: { 'Authorization' => 'Basic ' + Base64.strict_encode64("#{client_id}:#{client_secret}"), 'Content-Type' => 'application/x-www-form-urlencoded' } )
但是这一直没有用...我尝试了我认为的每一种组合,但无法使其正常工作。
[redirect_uri绝对正确,因为当我更改它时,它提供了bad_uri方法,并且授权可以正常工作,因为我可以使用Implicit Grant
查询api
如果有人有任何经验/解决方案,我将非常有义务
我正在尝试从spotify api获取一个access_token。 spotify docs但是我总是得到响应400,{“ error” =>“ invalid_grant”,“ error_description” =>“无效的授权代码”} ...
我认为您不需要自己对主体进行编码。设置标题应该足够了。您可能必须对redirect_uri
进行URL编码,因为它必须与第一个/授权码请求中使用的值匹配。