遇到未预期的Spotify API响应的React代码
P粉471207302
P粉471207302 2023-09-17 09:57:50
[React讨论组]

我正在使用Spotify API在React中制作应用程序。

首先,我使用我的clientID和clientSecret获取访问令牌。 然后,我试图使用此令牌获取userID。文档中提到需要进行get请求并将令牌作为标头传递。

问题是,我总是得到401错误代码的响应。文档提到,这个错误可能是因为令牌已过期。但在我的代码中,我在获得令牌后立即尝试获取userID。

我的第二个问题是关于在React中进行请求。正如您所见,我使用了useEffect钩子来实现,但我不确定这是否是正确的方法。此外,我进行第二个请求的方式感觉不太好(在useEffect内部的if语句)。

非常感谢任何帮助!

P.S. apiKey和apiSecret是全局变量,第一个请求工作得很好,它返回有效的令牌,成功用于进行搜索歌曲的另一个get请求。

const [token, setToken] = useState("");
const [userID, setUserID] = useState("");

// Obtain access token and user ID
useEffect(() => {
  // Get access token
  const parameters = {
    method: "POST",
    headers: {
      "Content-Type": "application/x-www-form-urlencoded",
    },
    body: `grant_type=client_credentials&client_id=${apiKey}&client_secret=${apiSecret}`,
  };

  fetch("https://accounts.spotify.com/api/token", parameters)
    .then((response) => {
      return response.json();
    })
    .then((data) => {
      setToken(data.access_token);
      return data.access_token;
    });
}, []);

// Obtain user ID once token is obtained
useEffect(() => {
  if (token != "") {
    const parameters = {
      method: "GET",
      headers: {
        Authorization: `Bearer ${token}`,
      },
    };

    fetch("https://api.spotify.com/v1/me", parameters)
      .then((response) => {
        return response.json();
      })
      .then((data) => {
        console.log(data);
      });
  }
}, [token]);
P粉471207302
P粉471207302

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号