Spotify 隐式授权流程 - 缺少必需参数:client_id

Spotify Implicit Grant Flow- Missing required parameter: client_id

我遇到了一个我不明白的问题! 我正在开发一个 react-native (js) 应用程序,它尝试使用隐式授权流访问 Spotify api。

这是我获取访问令牌的方法:

async function getTokenFromAPI() {
    try {
        var params = {
            client_id: '<client_id>',
            response_type: 'token',
            redirect_uri: 'http://localhost:8888/callback'
        };

        var esc = encodeURIComponent;
        var query = Object.keys(params)
            .map(k => `${esc(k)}=${esc(params[k])}`)
            .join('&');

        fetch('https://accounts.spotify.com/authorize', query).then(function (response) {
            console.log('response, ' + JSON.stringify(response));
            return response;
        })
    } catch(error) {
        console.error(error);
    }
}

但它回答说: Missing required parameter: client_id

我还使用 Postman 检查我的请求是否正确,我得到了相同的响应...

有什么问题吗?在他们的 doc 上,他们说这是一个只有 3 个参数的 GET 方法..

提前感谢您提供任何解决方法!

您将查询参数作为选项提供给 fetch,而不是将其添加到 url。

改变这个

fetch('https://accounts.spotify.com/authorize', query).then(function () { ... })

至此

fetch(`https://accounts.spotify.com/authorize${query}`).then(function () { ... })