首页 > 解决方案 > 如何使用 JavaScript 发布到 Spotify API 令牌端点?

问题描述

我正在运行以下 js 代码。但我不断收到来自 Spotify 网页的错误(说有某种错误)。 credentials是一个 base64 编码的 client_id 和 secret 字符串。

curl 命令工作得很好:

curl -X "POST" -H "Authorization: Basic *credentials*" -d grant_type=client_credentials https://accounts.spotify.com/api/token

js代码不能正常工作..

我想这很容易,但我在 js 方面不是很好(对不起!)。

fetch('https://accounts.spotify.com/api/token', {
    method: 'POST',
    headers: {'Authorization': 'Basic *credentials*'},
    body: 'grant_type=client_credentials'
    })
    .then(response => response.json())
    .then(data => {
        console.log(data);
    });

标签: javascriptnode.jsfetchnode-fetch

解决方案


正如Spotify 授权指南中所指定的那样,主体必须是application/x-www-form-urlencoded这样,所以只需添加这个标题:

fetch('https://accounts.spotify.com/api/token', {
    method: 'POST',
    headers: {
        'Authorization': 'Basic *credentials*',
        'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
    },
    body: 'grant_type=client_credentials'
})
.then(response => response.json())
.then(data => {
    console.log(data);
});

推荐阅读