Spotify API使艺术家跟踪数据返回错误未经授权

时间:2017-06-07 14:01:48

标签: javascript reactjs

目前正在尝试获取KD Rusha以获取当前曲目。当每个人将鼠标悬停在歌曲图像上进行播放时,将其显示在他的网站上并显示播放按钮。我在这里做错了什么?

我的步骤:

  1. 想要在spotify上获取KD Rusha热门专辑。
  2. 将它们限制为仅限9首曲目。
  3. 在每首曲目的顶部添加播放按钮,播放歌曲30秒。

    艺术家ID https://api.spotify.com/v1/artists/{id}给我401 (Unauthorized)

    import React from 'react';
    require('dotenv').config();
    
    export default class SpotifyComponent extends React.Component {
    
    constructor(props){
        super(props);
        this.state = {
           artist: null,
        };
    }
    
    componentWillMount() {
        var request = new Request('https://api.spotify.com/v1/artists/5JLWikpo5DFPqvIRi43v5y', {
          method: 'GET',
          headers: new Headers({
          'Accept': 'application/json',
          'Content-Type': 'text/plain',
    
          'Authorization': 'Bearer <big blob of token here>'
          })
    });
    
      fetch(request)// fetch the Spotify date from KD Rusha Account
        .then((response) => {
          var result = response.json()
            this.setState({// State artist albums
              albums: result,
              selectedTrack: [0]
            });
                    console.log(response.json());
        if (response.status >= 400) {
          throw new Error("Bad response from server");
        }
        return response.json();
      });
    }
    
      render(){
        return(
          <section className="spotify-cantainer">
                  <img src="{albums}" alt="kdrusha" />
          </section>
        );
      }
    
    }
    

1 个答案:

答案 0 :(得分:0)

这可能是完全错误的,但由于没有人回复你,而且由于你的代码,我找到了一个非常类似问题的解决方案,我会尽力帮助你。这是我的代码,一个连接到输入的函数,它将使用我的Spotify登录搜索艺术家:

search () {
const BASE_URL = 'https://api.spotify.com/v1/search?';
const FETCH_URL = `${BASE_URL}q=${this.state.query}&type=artist&limit=1`;

fetch(FETCH_URL, {
  method: 'GET',
  headers: new Headers({
    Accept: "application/json",
    Authorization: "Bearer <long token here>"
  })
})
.then(response => response.json())
.then(json => console.log('json', json));
}

一个区别是我的Headers dict中的键不在引号中。该函数返回一个json对象,其中包含有关{this.state.quesry}的艺术家的所有信息。

祝你好运,我希望这有帮助!