向 Spotify 发出 GET 请求
Make a GET request to Spotify
我正在尝试向 public Spotify 播放列表发出获取请求以获取关注者数量,然后将其注入 div 的内部 HTML。就这么简单。
总的来说,我对 API 和 JS 有点陌生,所以我想问问是否有人要看看我在这里做错了什么。
JS 代码如下所示:
const updateSpotify = (function() {
const clientId = 'aa81a434672045ccb5c9b40029359183';
const clientSecret = '456aea5802484cc5b83e35e05a40c623';
const _getToken = async () => {
const result = await fetch('https://accounts.spotify.com/api/token', {
method: 'POST',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded',
'Authorization' : 'Basic ' + btoa(clientId + ':' + clientSecret)
},
body: 'grant_type=client_credentials'
});
const data = await result.json();
return data.access_token;
}
const _getPlaylist = async (token) => {
const result = await fetch(`https://api.spotify.com/v1/playlists/1Vt3ahELCdZ6tEAYUy8mNy`, {
method: 'GET',
headers: { 'Authorization' : 'Bearer ' + token}
});
const data = await result.json();
document.getElementById("followers").innerHTML = data.followers.total;
document.getElementById("cover-image").src = data.images.total;
return data;
}
_getPlaylist(_getToken()); });
在 HTML 页面上,我尝试像这样在加载时调用函数:
<body class="overview" onload="updateSpotify();">
但是开发者工具给我一个 400 错误。来自 spotify:
400 Bad Request - The request could not be understood by the server due to malformed syntax. The message body will contain more information; see Response Schema.
有人能看出这里出了什么问题吗?
用 curl
试试看是否有效:
curl -X GET "https://api.spotify.com/v1/playlists/1Vt3ahELCdZ6tEAYUy8mNy" -H "Authorization: Bearer {your access token}"
我认为您的代码中的问题在于 _getToken()
返回的是 Promise
而不是 token
值。尝试这样调用 _getPlaylist
:
_getToken().then(function(token) {
_getPlaylist(token);
})
我正在尝试向 public Spotify 播放列表发出获取请求以获取关注者数量,然后将其注入 div 的内部 HTML。就这么简单。
总的来说,我对 API 和 JS 有点陌生,所以我想问问是否有人要看看我在这里做错了什么。
JS 代码如下所示:
const updateSpotify = (function() {
const clientId = 'aa81a434672045ccb5c9b40029359183';
const clientSecret = '456aea5802484cc5b83e35e05a40c623';
const _getToken = async () => {
const result = await fetch('https://accounts.spotify.com/api/token', {
method: 'POST',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded',
'Authorization' : 'Basic ' + btoa(clientId + ':' + clientSecret)
},
body: 'grant_type=client_credentials'
});
const data = await result.json();
return data.access_token;
}
const _getPlaylist = async (token) => {
const result = await fetch(`https://api.spotify.com/v1/playlists/1Vt3ahELCdZ6tEAYUy8mNy`, {
method: 'GET',
headers: { 'Authorization' : 'Bearer ' + token}
});
const data = await result.json();
document.getElementById("followers").innerHTML = data.followers.total;
document.getElementById("cover-image").src = data.images.total;
return data;
}
_getPlaylist(_getToken()); });
在 HTML 页面上,我尝试像这样在加载时调用函数:
<body class="overview" onload="updateSpotify();">
但是开发者工具给我一个 400 错误。来自 spotify:
400 Bad Request - The request could not be understood by the server due to malformed syntax. The message body will contain more information; see Response Schema.
有人能看出这里出了什么问题吗?
用 curl
试试看是否有效:
curl -X GET "https://api.spotify.com/v1/playlists/1Vt3ahELCdZ6tEAYUy8mNy" -H "Authorization: Bearer {your access token}"
我认为您的代码中的问题在于 _getToken()
返回的是 Promise
而不是 token
值。尝试这样调用 _getPlaylist
:
_getToken().then(function(token) {
_getPlaylist(token);
})