本文介绍了Spotify API客户端凭据流返回400错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用客户端凭据流的Spotify文档here:
我能够在Google应用程序脚本(Java脚本)中创建API请求。
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假"> function callAPI () { SPOTIFY_CLIENT_SECRET = secret SPOTIFY_CLIENT_ID = id const HEADERS = { "Content-Type": "application/json", 'Authorization': `Basic ${Utilities.base64Encode(SPOTIFY_CLIENT_ID + ':' + SPOTIFY_CLIENT_SECRET)})` } const BODY = { 'grant_type': 'client_credentials' } var url = `api.spotify/api/token` var requestOptions = { 'method': 'POST', 'headers': HEADERS, 'payload': JSON.stringify(BODY), 'muteHttpExceptions': true, 'redirect': 'follow' }; var response = UrlFetchApp.fetch(url, requestOptions); var data = JSON.parse(response.getContentText());我对两件事感到困惑,请同时回答这两件事。
1)。Spotify文档规定在授权标头中的客户端凭据之前输入&qot;Basic&qot;。
但是,当我运行此代码时,我收到以下错误
数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假"> { error: { status: 400, message: 'Only valid bearer authentication supported' } } 如果我使用的是客户端凭据流,为什么它会认为我使用的是持有者令牌?(另外,如果我将身份验证更改为持有者,我会收到401错误&无效的访问令牌)2)。您能提供一个此代码的工作版本的示例吗?为什么它能够运行而不是我的?
推荐答案我相信您的目标如下。
您要将以下cURL命令转换为Google Apps脚本。
curl -X "POST" -H "Authorization: Basic ZjM4ZjAw...WY0MzE=" -d grant_type=client_credentials accounts.spotify/api/token
- 再次看到您的脚本时,注意到Basic ${Utilities.base64Encode(SPOTIFY_CLIENT_ID + ':' + SPOTIFY_CLIENT_SECRET)})需要修改。因为在这种情况下,是Basic ###)。请删除)。
- Client Credentials Flow
- fetch(url, params)
更多推荐
Spotify API客户端凭据流返回400错误
发布评论