Spotify API客户端凭据流返回400错误

编程入门 行业动态 更新时间:2024-10-28 14:23:16
本文介绍了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
在本例中,grant_type=client_credentials作为表单数据发送。当我看到你的脚本时,它是作为数据发送的。并使用api.spotify/api/token的URL。但是curl命令使用accounts.spotify/api/token。"我想这些可能就是你出问题的原因。因此,当您的脚本被修改时,它将如下所示。

修改后的脚本: function callAPI() { SPOTIFY_CLIENT_SECRET = secret; // Please set your value. SPOTIFY_CLIENT_ID = id; // Please set your value. const HEADERS = { 'Authorization': `Basic ${Utilities.base64Encode(SPOTIFY_CLIENT_ID + ':' + SPOTIFY_CLIENT_SECRET)}` // Modified } const BODY = { 'grant_type': 'client_credentials' } var url = "accounts.spotify/api/token"; var requestOptions = { 'method': 'POST', 'headers': HEADERS, 'payload': BODY, 'muteHttpExceptions': true, }; var response = UrlFetchApp.fetch(url, requestOptions); var data = response.getContentText(); console.log(data) } 注意:
  • 再次看到您的脚本时,注意到Basic ${Utilities.base64Encode(SPOTIFY_CLIENT_ID + ':' + SPOTIFY_CLIENT_SECRET)})需要修改。因为在这种情况下,是Basic ###)。请删除)。
引用:
  • Client Credentials Flow
  • fetch(url, params)

更多推荐

Spotify API客户端凭据流返回400错误

本文发布于:2023-10-12 02:34:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1483515.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:凭据   客户端   错误   Spotify   API

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!