我正在开发一个使用Spotify API的React应用程序,我不明白为什么我在尝试使用API的PKCE OAuth流获取访问令牌时会出现此错误。
{
error: "unsupported_grant_type",
error_description: "grant_type parameter is missing"
}
我完全按照指南中的指示操作,并且能够很好地获得授权码。这是我试图获得令牌的电话。
let res = await axios.post("https://accounts.spotify.com/api/token", {}, {
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
params: {
"grant_type": "authorization_code",
"code": data.code,
"redirect_uri": redirectUri,
"code_verifier": verifier,
"client_id": clientId
}
}).catch(err => console.error(err));
我试过在post请求的主体中传递params和url params,结果都一样,正如你所看到的,我提供了一个grant_type
,并且使用了指南中提到的值。
5条答案
按热度按时间uplii1fm1#
我已经尝试了每一种方法,我能找到在互联网上,似乎没有什么工作,但几个小时后,这成功了:
在此之后,您可以简单地使用Spotify API示例中所示的任何端点。
kb5ga3dv2#
使用querystringnpm包解析数据,因为我们在头中使用application/x-www-form-urlencoded
并将授权类型更改为授权类型:“客户端凭据”
我们使用query.stringify()作为数据,因为内容类型是application/x-www-form-urlencoded,也不要使用params,因为它是一个post请求
lfapxunr3#
这对我很有效:
xj3cbfub4#
我遇到了同样的问题,通过对请求主体数据进行字符串化可以解决这个问题
qxgroojn5#
您是否跟踪了消息并验证了请求正文确实如预期的那样?您的OAuth字段看起来完全正确,所以我怀疑这可能只是一个axios语法问题。
我可能是错的,但是"参数“字段应该被称为”数据“,就像我的这个类一样。