我正在尝试使用添加的包装器“ spotify-web-api-node”访问Spotify API的客户端凭据流,但在寻找一种自动刷新令牌的方法时遇到了麻烦,因此我没有手动输入。我也无法弄清楚如何在没有api响应“未授权”错误的情况下将凭据放入单独的.env文件中。如果我所有的凭据都与api一起硬编码在同一个文件中,它将起作用,但是如果我尝试将这些凭据放入.env文件的环境变量中,它将返回错误。任何帮助都将不胜感激。
const express = require("express");
const app = express();
const dotenv = require("dotenv");
dotenv.config();
const SpotifyWebApi = require("spotify-web-api-node");
app.listen(8888, () => console.log(`listening at http://localhost:8888`));
const spotifyAPI = new SpotifyWebApi({
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
// redirectURi: 'http://localhost:8888/'
});
// Retrieve an access token
spotifyAPI.clientCredentialsGrant().then(
(data) => {
console.log("The access token is " + data.body["access_token"]);
spotifyAPI.setAccessToken(data.body["access_token"]);
},
(err) => {
console.log("Error receiving token", err.message);
}
);
const getArtist = (artist) => {
const info = spotifyAPI.searchArtists(artist).then(
function (data) {
return data.body;
},
function (err) {
console.error(err);
}
);
return info;
};
const spotify = async (artist) => {
try {
const info = await getArtist(artist);
const albums = await getAlbums(id);
const obj = {
name: artist,
followerCount: info.artists.items[0].followers.total,
genres: info.artists.items[0].genres,
id: info.artists.items[0].id,
};
return obj;
} catch (err) {
return err.message;
}
};
module.exports = spotify;