You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Spotify添加喜欢歌曲API时出现400错误(缺失id字段)求助

排查Spotify API添加喜欢歌曲400错误(Missing required field: id)

常见问题及排查方向

1. 请求格式不符合API要求

Spotify 的 PUT /me/tracks 接口要求请求体必须包含**ids字段**,且该字段值为歌曲ID组成的数组,而非单个id字段。正确的请求体格式应为:

{
  "ids": ["你的歌曲ID"]
}

如果代码中直接传递单个id、键名写成id而非ids,都会触发该错误。

2. track.id未正确获取或为空

确认传入的track.id实际有效:

  • 调用API前添加日志打印,比如console.log('当前歌曲ID:', track.id),检查是否为undefined、空字符串或格式异常值。
  • 部分Spotify接口返回的歌曲数据会嵌套在track字段下(比如推荐接口),此时需要取track.track.id而非直接track.id。

3. 请求头未设置正确的Content-Type

Spotify API要求请求头必须包含Content-Type: application/json,如果缺失该配置,服务器无法正确解析请求体,会导致识别不到ids字段。

4. 代码逻辑中的参数传递错误

结合你提供的代码片段针对性排查:

  • home.jsx:检查调用添加收藏函数时,是否正确传递了track.id,比如是否误传整个track对象而非ID值,或者参数名传递错误。
  • recommendationsSlice.jsx:检查异步Thunk中的请求配置:
    • 确认请求体是{ ids: [trackId] }而非{ id: trackId };
    • 若使用fetch,需确保body用JSON.stringify()序列化;若使用axios,需确保data字段格式正确。

示例正确的请求代码(fetch版本):

const addToFavorites = async (trackId) => {
  const token = localStorage.getItem('spotify_token');
  await fetch('https://api.spotify.com/v1/me/tracks', {
    method: 'PUT',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ ids: [trackId] })
  });
};

总结

优先排查请求体格式是否符合{ ids: [数组] }要求,再验证track.id的有效性,最后检查请求头和参数传递逻辑。

内容的提问来源于stack exchange,提问作者ChrisKola99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 00:12:04