如何从 Spotify Search API 获取数据并将其解析为 JSON? [在 node.js
How to fetch data from Spotify Search API and parse it to JSON? [In node.js
这是我的app.js:
const express = require("express");
//const https = require("https");
const app = express();
app.get("/", function(req, res) {
const query = niall;
// Follow procedure here to get access_token and refresh_token: https://benwiz.com/blog/create-spotify-refresh-token/
const access_token = {access_token};
const token = "Bearer " + access_token;
var searchUrl = "https://api.spotify.com/v1/search?q=" + query + "&type=track&limit=4";
////////WRITE YOUR CODE HERE//////////
});
// Starting the server. Should this be placed at the top of all other commands?
app.listen(3000, function() {
console.log("Server is running on port 3000.")
})
预期行为:
我们将使用 https.get 方法从 api 端点获取结果。
返回的数据要解析为JSON.
我们需要将此 JSON 输出中的曲目 ID 值存储到一个变量中,并将其记录在控制台中。
有用的资源:
- 按照此处的步骤获取 access_token:https://benwiz.com/blog/create-spotify-refresh-token/
- 这里理解参数:https://developer.spotify.com/documentation/web-api/reference/#category-search
- Spotify Web Console了解JSON排列:https://developer.spotify.com/console/get-search-item/
我真的需要帮助。如有任何帮助,我们将不胜感激。
将////////WRITE YOUR CODE HERE//////////
替换为
axios.get(searchUrl, {
headers: {
'Authorization': token,
}
})
.then((resAxios) => {
console.log(resAxios.data)
spotifyResult = resAxios.data;
//Extracting required data from 'result'. The following "items[0].id.videoId" is the address of the data that we need from the JSON 'ytResult'.
let spotifyTrackIdAppJs00 = spotifyResult.tracks.items[0].id;
let spotifyAlbumIdAppJs00 = spotifyResult.tracks.items[0].album.id;
let spotifyArtistIdAppJs00 = spotifyResult.tracks.items[0].artists[0].id;
console.log("Fetched values: " + spotifyTrackIdAppJs00 + ", " + spotifyAlbumIdAppJs00 + ", " + spotifyArtistIdAppJs00);
// The 'results' named EJS file is rendered and fed in response. The 'required' data is passed into it using the following letiable(s).
// A folder named 'views' has to be in the same directory as "app.js". That folder contains 'results.ejs'.
res.render("results", {
spotifyTrackIdEjs00: spotifyTrackIdAppJs00,
spotifyAlbumIdEjs00: spotifyAlbumIdAppJs00,
spotifyArtistIdEjs00: spotifyArtistIdAppJs00
});
console.log("Values to be used in rendered file: " + spotifyTrackIdAppJs00 + ", " + spotifyAlbumIdAppJs00 + ", " + spotifyArtistIdAppJs00);
})
.catch((error) => {
console.error(error)
})
我还需要专辑和艺术家的 ID 值。请相应修改。
这是我的app.js:
const express = require("express");
//const https = require("https");
const app = express();
app.get("/", function(req, res) {
const query = niall;
// Follow procedure here to get access_token and refresh_token: https://benwiz.com/blog/create-spotify-refresh-token/
const access_token = {access_token};
const token = "Bearer " + access_token;
var searchUrl = "https://api.spotify.com/v1/search?q=" + query + "&type=track&limit=4";
////////WRITE YOUR CODE HERE//////////
});
// Starting the server. Should this be placed at the top of all other commands?
app.listen(3000, function() {
console.log("Server is running on port 3000.")
})
预期行为:
我们将使用 https.get 方法从 api 端点获取结果。
返回的数据要解析为JSON.
我们需要将此 JSON 输出中的曲目 ID 值存储到一个变量中,并将其记录在控制台中。
有用的资源:
- 按照此处的步骤获取 access_token:https://benwiz.com/blog/create-spotify-refresh-token/
- 这里理解参数:https://developer.spotify.com/documentation/web-api/reference/#category-search
- Spotify Web Console了解JSON排列:https://developer.spotify.com/console/get-search-item/
我真的需要帮助。如有任何帮助,我们将不胜感激。
将////////WRITE YOUR CODE HERE//////////
替换为
axios.get(searchUrl, {
headers: {
'Authorization': token,
}
})
.then((resAxios) => {
console.log(resAxios.data)
spotifyResult = resAxios.data;
//Extracting required data from 'result'. The following "items[0].id.videoId" is the address of the data that we need from the JSON 'ytResult'.
let spotifyTrackIdAppJs00 = spotifyResult.tracks.items[0].id;
let spotifyAlbumIdAppJs00 = spotifyResult.tracks.items[0].album.id;
let spotifyArtistIdAppJs00 = spotifyResult.tracks.items[0].artists[0].id;
console.log("Fetched values: " + spotifyTrackIdAppJs00 + ", " + spotifyAlbumIdAppJs00 + ", " + spotifyArtistIdAppJs00);
// The 'results' named EJS file is rendered and fed in response. The 'required' data is passed into it using the following letiable(s).
// A folder named 'views' has to be in the same directory as "app.js". That folder contains 'results.ejs'.
res.render("results", {
spotifyTrackIdEjs00: spotifyTrackIdAppJs00,
spotifyAlbumIdEjs00: spotifyAlbumIdAppJs00,
spotifyArtistIdEjs00: spotifyArtistIdAppJs00
});
console.log("Values to be used in rendered file: " + spotifyTrackIdAppJs00 + ", " + spotifyAlbumIdAppJs00 + ", " + spotifyArtistIdAppJs00);
})
.catch((error) => {
console.error(error)
})
我还需要专辑和艺术家的 ID 值。请相应修改。