尝试访问Spotify API时遇到令牌问题

时间:2020-11-03 18:59:17

标签: javascript api environment-variables spotify

我正在尝试使用添加的包装器“ 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;

0 个答案:

没有答案