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

Spotify API问题:使用Refresh Token获取Access Token时出错

解决Spotify认证"refresh_token must be supplied"错误

问题出在请求体的参数键名上:Spotify令牌接口要求的参数键是refresh_token,但你的代码用了对象简写语法,把变量名REFRESH_TOKEN作为键名传入,导致接口无法识别到正确的参数。

修正后的代码:

import { Buffer } from 'buffer';
import querystring from 'querystring'
const CLIENT_ID = import.meta.env.VITE_APP_CLIENT_ID;
const CLIENT_SECRET = import.meta.env.VITE_APP_CLIENT_SECRET;
const REFRESH_TOKEN = import.meta.env.VITE_APP_REFRESH_TOKEN;

const basic = Buffer.from(`${CLIENT_ID}:${CLIENT_SECRET}`).toString('base64');
const TOKEN_ENDPOINT = `https://accounts.spotify.com/api/token`
    
const getAccessToken = async () => {
    const response = await fetch(TOKEN_ENDPOINT, {
        method: 'POST',
        headers: {
            Authorization: `Basic ${basic}`,
            'Content-Type': 'application/x-www-form-urlencoded',
        },
        body: querystring.stringify({
            grant_type: 'refresh_token',
            // 显式指定正确的参数键名
            refresh_token: REFRESH_TOKEN,
        }),
    })

    return response
}

解释:JavaScript对象简写语法会把变量名直接作为键名,你之前的代码会生成{ REFRESH_TOKEN: "你的令牌值" }这样的结构,而Spotify接口只接受键名为refresh_token的参数,所以必须显式声明键名并赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:14:59