如何使用Axios做Spotify Api Post Request



我正在尝试使用此端点向播放队列添加歌曲:

const add = async () => {

try {

const url = `https://api.spotify.com/v1/me/player/queue?uri=${songUrl}&device_id=${deviceId}`

await axios.patch(url, {
headers: {
Authorization: `Bearer ${to}`
},
})
} catch (error) {
console.log(error);
}


}

我得到一个状态401错误,有一条消息说没有提供令牌。但是当我console.log这个令牌时,它出现了。

我还没有使用Spotify API,但是,根据他们的文档,您需要发送POST请求,而不是PATCH,这是您使用的。

axios.post()代替axios.patch():

const add = async (songUrl, deviceId, token) => {
try {
const url = `https://api.spotify.com/v1/me/player/queue?uri=${songUrl}&device_id=${deviceId}`;
await axios.post(url, {
headers: {
Authorization: `Bearer ${token}`,
},
});
} catch (error) {
console.log(error);
}
};

您的post request的第二个参数应该是body,第三个参数应该是headers。此外,您还没有添加文档中提到的所有头文件。

headers: {
Accept: 'application/json',
Authorization: 'Bearer ' + newAccessToken,
'Content-Type': 'application/json',
}

从这里获取您的访问令牌:https://developer.spotify.com/console/post-queue/

如果它仍然不起作用,试试他们的文档中提到的curl方法,如果它起作用,切换到axios

我有和你完全相同的问题,我意识到的是我正在传递标题作为数据而不是配置。下面的代码应该为你工作,因为它为我工作。

const add = async () => {
try { 
const url = `https://api.spotify.com/v1/me/player/queue?uri=${songUrl}&device_id=${deviceId}`
await axios.post(url, null,{
headers: {
Authorization: `Bearer ${to}`
},
})
} catch (error) {
console.log(error);
}
}

相关内容

  • 没有找到相关文章

最新更新