Axios GET 请求 Spotify API 返回 401

Posted

技术标签:

【中文标题】Axios GET 请求 Spotify API 返回 401【英文标题】:Axios GET request to Spotify API returning 401 【发布时间】:2021-08-08 23:30:22 【问题描述】:

我使用了spotify web api reference 中提供的格式和直接从那里生成的访问令牌,但我不断收到 401 错误。怎么回事?

    const accessToken = 'string from https://developer.spotify.com/console/get-current-user-playlists/?limit=50&offset=0';
    console.log(accessToken);
    axios
        .get(
            'https://api.spotify.com/v1/me/playlists',
             params:  limit: 50, offset: 0  ,
            
                headers: 
                    Accept: 'application/json',
                    Authorization: 'Bearer ' + accessToken,
                    'Content-Type': 'application/json',
                ,
            
        )
        .then((data) => console.log(data))
        .catch((err) => console.log(err));

错误:

GET https://api.spotify.com/v1/me/playlists?limit=50&offset=0 401

【问题讨论】:

他们给您的curl 示例是否也返回401?如果是这样,您在创建令牌时是否为此请求选择了一个强制范围? 不,该示例运行良好,是的,我在获取令牌之前检查了范围“播放列表读取私有”范围。我添加了错误以供参考 【参考方案1】:

想通了。发布请求在第二个参数中有一个正文,在第三个参数中有一个标题。但是,获取请求只有 URL 参数和标头的第二个参数。所以我只需要将 2 个对象合二为一

【讨论】:

【参考方案2】:

想通了。 Post 请求在第二个参数中有一个正文,在第三个参数中有一个标头。但是,获取请求只有 URL 参数和标头的第二个参数。所以我只需要将 2 个对象合二为一:

axios
    .get(
        'https://api.spotify.com/v1/me/playlists', 
            params:  limit: 50, offset: 0 ,
            headers: 
                Accept: 'application/json',
                Authorization: 'Bearer ' + newAccessToken,
                'Content-Type': 'application/json',
            ,
        )
    )

【讨论】:

以上是关于Axios GET 请求 Spotify API 返回 401的主要内容,如果未能解决你的问题,请参考以下文章

在 Express.js 上使用 Axios 向 Spotify API 发出 POST 请求时出现错误 400

Spotify API GET 请求到 JSON

Spotify API 错误 401 - 尝试将曲目放入用户的库中

axios 在调用时不断运行

Redux和Axios在GET API请求上返回promise对象

如何使用@nestjs/axios 发出 api Get 请求