Javascript 如何从Spotify API获取信息,如何将响应转换为JSON?
我对javascript和API还不熟悉,所以我还在学习,但我不理解关于API的课程,所以现在我被困在项目的这一部分 这是我必须做的,我必须创建一个React应用程序,允许用户创建播放列表,然后将其发送给Spotify,因此我需要从Spotify获取音乐数据,然后将播放列表保存在Spotify中Javascript 如何从Spotify API获取信息,如何将响应转换为JSON?,javascript,json,ajax,api,spotify,Javascript,Json,Ajax,Api,Spotify,我对javascript和API还不熟悉,所以我还在学习,但我不理解关于API的课程,所以现在我被困在项目的这一部分 这是我必须做的,我必须创建一个React应用程序,允许用户创建播放列表,然后将其发送给Spotify,因此我需要从Spotify获取音乐数据,然后将播放列表保存在Spotify中 const client_id = "CLIENT_ID" const redirect_uri = "http://localhost:3000/" let accessToken; let url
const client_id = "CLIENT_ID"
const redirect_uri = "http://localhost:3000/"
let accessToken;
let url = "https://accounts.spotify.com/authorize?client_id=CLIENT_ID&redirect_uri=http:%2F%2Fexample.com%2Fcallback&scope=user-read-private%20user-read-email&response_type=token&state=123"
const Spotify = {
getAccessToken() {
if (accessToken) {
return accessToken;
} else if (window.location.href.match(/access_token=([^&]*)/ & /expires_in=([^&]*)/)) {
accessToken = window.location.href.match(/access_token=([^&]*)/);
let expiresIn = window.location.href.match(/expires_in=([^&]*)/);
window.setTimeout(() => accessToken = '', expiresIn * 1000);
window.history.pushState('Access Token', null, '/');
} else {
window.location(`https://accounts.spotify.com/authorize?client_id=${client_id}&response_type=token&scope=playlist-modify-public&redirect_uri=${redirect_uri}`);
}
},
search(term) {
const response = fetch(`https://api.spotify.com/v1/search?type=track&q=${term}`, {
method: 'GET',
headers: {Authorization: `Bearer ${accessToken}`}
})
if (response.ok) {
const jsonResponse = response.json().then(
jsonResponse.map((track) => {
ID: track.id,
Name: track.name,
Artist: track.artists[0].name,
Album: track.album.name,
URI: track.uri
}))
}
}
savePlaylist(namePlaylist, [])
};
export default Spotify
我很抱歉,如果它是混乱的,但我是新的,并没有理解这节课的任何内容,所以我甚至不知道我期望什么,但告诉我还有什么我必须指定。其中一个错误在这一部分:
if (response.ok) {
const jsonResponse = response.json().then(
jsonResponse.map((track) => {
ID: track.id,
Name: track.name,
Artist: track.artists[0].name,
Album: track.album.name,
URI: track.uri
}))
}
这些错误告诉我
意外标记
谈论:
在“ID”、“Name”、“Artist”、“Album”和“URI”
之后,还告诉我预期的“;”代码>但我认为没有逻辑,所以我确实需要一些帮助,我知道我可能还不清楚,所以请询问我任何问题以使其更清楚。尝试以下内容。既然您已经有了一个对象,为什么还要尝试创建另一个对象?只要返回轨迹,它就是一个对象。即使您想创建另一个,也只需返回{property1:value1,property2:value2,propertyN:valueN}哦,太好了!我在谷歌上搜索了你的代码,找到了一些变体