Spotify API授权授予流状态415

时间:2019-04-22 20:54:10

标签: node.js asp.net-web-api authorization axios spotify

我正在尝试构建一个与Spotify API集成的Web应用程序。为此,我正在使用“授权”授权流。

我设法获得了授权代码,但是在后端,当我测试应该与访问令牌交换身份验证代码的端点时,我一直得到415响应状态。

这是端点使用的服务:

export async function getAccessAndRefresh(code: string): Promise<any> {
return axios.post(ACCESS_URL, {
    data: {
        "grant_type": "authorization_code",
        "code": code,
        "redirect_uri": REDIRECT_URI
    },
    headers: {
        "Authorization": " Basic " + Buffer.from(CLIENT_ID + ":" + CLIENT_SECRET).toString("base64"),
        "Content-Type": "application/x-www-form-urlencoded",
    },
    method: "POST",
    json:true
})

}

此外,我编写了此单元测试以测试服务(运行此单元测试时得到415):

describe("Request tests", () => {

let server: Server;

function initServer() {


    server = createServer(App);

    server.listen(5000);
}

function destroyServer() {
    server.close();
}

test("Test refresh and access token returned by spotify api", () => {

    return getAccessAndRefresh(AUTH_CODE).then((value)=>{
        expect(value).toHaveProperty("access_token");
    })

})

beforeAll(() => {
    initServer();
});

afterAll(()=>{
    destroyServer();
})

})

在测试中,AUTH_CODE是我使用API​​密钥访问https://accounts.spotify.com/authorize端点在浏览器中手动获得的代码。

有人可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:1)

Spotify Dashboard中,您可能需要将重定向URI设置为代码中使用的URL,如果出现以下错误,则需要将它们匹配:

  

{“ error”:“ invalid_grant”,“ error_description”:“无效的重定向URI”}

这就是您需要做的,只是转到显示板,您将在其中获得客户端ID和客户端密钥,然后转到“编辑设置”,然后会看到用于设置重定向URI的选项