Spotify API - 在 Google Apps 脚本中检索有效访问令牌

2024-02-14

以下是 Spotify API 的文档(我使用的是隐式授权流程):https://beta.developer.spotify.com/documentation/general/guides/authorization-guide/#implicit-grant-flow https://beta.developer.spotify.com/documentation/general/guides/authorization-guide/#implicit-grant-flow

我正在尝试在 Google 表格中编写脚本。我专注于基本设置,但我似乎无法使访问令牌正常工作。

SOLVED:

我目前收到以下错误(这似乎是我的 我的获取方法的参数设置不正确):

“error”:“unsupported_grant_type”,“error_description”:“grant_type必须是client_credentials、authorization_code或refresh_token”

解决方案:

根据 Google 的规定,grant_type 必须列为有效负载 脚本方法 UrlFetchApp.fetch(请参阅下面更新的代码)

--

SOLVED:

正如您在下面看到的,我在尝试获取时使用“get”方法 令牌(尽管文档指定了“post”),因为该帖子 方法始终返回 405 错误。我想这就是我要迈出的一步 搞砸了。我假设我不应该使用 csrf_token 作为访问令牌。

解决方案:

https://accounts.spotify.com/token https://accounts.spotify.com/token本来应该https://accounts.spotify.com/api/token https://accounts.spotify.com/api/token

更新后的工作代码如下:

  var fetchParams = {
    'method':'post',
    'payload':{'grant_type':'client_credentials'},
    'headers':{'Authorization':authorization},
    'muteHttpExceptions':true
  }

  var replaceResponse = UrlFetchApp.fetch('https://accounts.spotify.com/api/token', fetchParams);

  var regExp = /access_token(.*?):/;

  var contentText = replaceResponse.getContentText();
  var access_token = contentText.slice(contentText.search('access_token')+15,contentText.search(',')-1);

  var requestOptions = {
    'headers':{'Authorization':'Bearer '+access_token},
    'muteHttpExceptions':true
  }

  var finalResponse = UrlFetchApp.fetch('https://api.spotify.com/v1/tracks/4dhARBZ8YLvm8oRDnCIeXr', requestOptions);

我通过以下方式修改了您用于检索访问令牌的脚本curl -X "POST" -H "Authorization: Basic ZjM4ZjAw...WY0MzE=" -d grant_type=client_credentials https://accounts.spotify.com/api/token该文件的。您能尝试一下这个修改后的脚本吗?

var authorization = "Basic "+ Utilities.base64Encode('<client_id>:<client_secret>');
var fetchParams = {
  method: 'post', // Modified
  payload: {'grant_type': 'client_credentials'}, // Modified
  headers: {'Authorization': authorization},
  muteHttpExceptions: true
}
var replaceResponse = UrlFetchApp.fetch("https://accounts.spotify.com/api/token", fetchParams); // Modified
Logger.log(replaceResponse.getContentText())

参考 :

  • 客户端凭证流程 https://beta.developer.spotify.com/documentation/general/guides/authorization-guide/#client-credentials-flow

如果回复消息有更改,请告诉我。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spotify API - 在 Google Apps 脚本中检索有效访问令牌 的相关文章

随机推荐

  • 如何在MySQL中实现关键字搜索?

    我是 SQL 编程新手 我有一个表作业 其中的字段id position category location salary range description refno 我想实施一个关键词搜索从前端 关键字可以驻留在上表的任何字段中 这是
  • 如果初始帧是 CGRectZero,则自定义 UIView 的 drawRect 永远不会被调用

    我有一个非常简单的 UIView 自定义子类 import BarView h import
  • 为什么 Tensorflow 文档中没有提及 contrib.layers.linear?

    我试图理解其他人的简单张量流模型 他们使用 contrib layers linear 但是我在任何地方都找不到有关此内容的任何信息 并且张量流文档中也没有提及 The tf contrib layers模块有API文档here https
  • 如何将 Oracle 中一个表的分区导入到另一个表中?

    我想知道以下步骤是否可行以及速度有多快 在表A中创建名为part1的分区 删除表B中的分区part1 将表A分区part1导入表B 如果确实可能的话 你能为我提供一个例子吗 或者有什么资源可以看吗 请注意 这些表将具有完全相同的结构 你可以
  • 在贝塞尔曲线路径上移动对象

    我想在贝塞尔曲线路径上从上到下移动图像 但我不知道如何计算该路径的 x y 点和斜率 该路径如下图所示 我有起点 终点和两个控制点 Path path new Path Point s new Point 150 5 Point cp1 n
  • 如何让puppeteer浏览器保持在后台运行而不跳转到前台?

    使用时puppeteer通过a抓取一堆网站for loop 每当创建一个新页面时 浏览器就会跳转到前台 这妨碍了我在计算机上做其他事情 即使我设置了以下参数 它仍然不起作用 那么我怎样才能让浏览器安静地运行而不跳到前台并打断我呢 我需要跑进
  • 如何在 mPDF 中设置自定义页面尺寸?

    我需要一些有关 mPDF 的帮助 我想设置我的自定义页面尺寸 确切地说 宽度 49 毫米 高度 200 毫米 但我找不到解决方案 我找到了 mPDF 手册 http mpdf1 com manual index php tid 184 ht
  • Pyside安装错误

    我有 32 位 Windows 7 操作系统 今天 我尝试下载 PySide 安装程序 但是 在我尝试运行下载的文件后 出现以下错误 PySide 安装程序无效或损坏 为什么我会得到这个 我最近开始了一门关于使用 Qt 框架使用 Pytho
  • Matplotlib 添加默认水印

    我在用着matplotlib对于工作和公司来说 政策是在我们制作的每个图上都包含水印 有没有办法设置matplotlib默认情况下执行此操作 我目前正在通过每个Axes对象到辅助函数中 该函数在左下角添加水印 import matplotl
  • 如何隐藏/显示UIimageview?

    void viewDidAppear BOOL animated super viewDidAppear animated CGRect viewRect CGRectMake 250 100 30 30 as UIImageView al
  • “政党模式”背后的原则和好处是什么?

    派对模型 是关系数据库设计的一种 模式 它至少有一部分涉及找到许多实体 例如客户 员工 合作伙伴等 之间的共性 并将其分解到一些更 抽象 的数据库表中 我想了解您对以下问题的想法 政党模式背后的核心原则和动力是什么 它规定您对数据模型做什么
  • hadoop pagerank运行时出现错误

    我已经在我的 vmware 上安装了 hadoop 并设计了我的 jar 文件 pagerank 运行以下命令 hadoop jar PageRank 1 0 0 jar PageRankDriver init 输入输出 2 出现以下错误
  • R 如何在另一个函数中将函数作为字符串传递

    对于这个小难题的任何帮助将不胜感激 我正在尝试向tq transmute函数从tidyquant包裹 参数的值是一个函数 但是我想将其作为字符串传递 在下面示例的范围内 我将通过 Shiny 传递它 selectInput 我已经尝试了所有
  • 如何检测地址/坐标中是否可以使用 Google 街景

    我正在制作一个使用 Google 街景图像 API 的应用程序 我可以毫无问题地根据地址 坐标获取街景图像 但是 我想检测特定地址是否有可用的街景图像 以便为没有街景图像的地址显示不同的行为 到目前为止我唯一的想法是读取返回图像的像素并检测
  • java: R 无法解析为变量

    我知道这个问题以前已经被问过 但我对此无能为力 我刚刚创建了一个新项目并收到此错误 当然 R java 文件没有被生成 我正在使用 JRE7 android 4 2 2 package com example myfirstapp impo
  • TensorFlow 中张量值的条件分配

    我想复制以下内容numpy代码在tensorflow 例如 我想分配一个0到先前值为的所有张量索引1 a np array 1 2 3 1 a a 1 0 a should be 0 2 3 0 如果我写类似的代码tensorflow我收到
  • 如何在Windows服务器上运行solr使其自动启动?

    如何在 Windows 服务器上运行 solr 使其自动启动 我运行它 java jar start jar 但我需要服务器自动执行此操作 使用您需要的命令创建一个批处理文件并在启动时运行它 一些these http windowsxp m
  • 场景生成器中的自定义控件 ClassNotFoundException

    我通过扩展现有控件创建了一个新控件 并且我想在我的 JavaFX 场景中使用这个新控件 我希望能够使用场景生成器编辑场景 但是将新控件添加到 FXML 文件后 我遇到了ClassNotFoundException打开场景生成器时 例如 这是
  • 为什么这段代码不会抛出 StackOverflow 异常

    在 clojure v1 6 0 中 这段代码会永远运行并消耗 100 的一个核心 defn average x y x y 2 defn improve guess x average guess x guess defn sqrt it
  • Spotify API - 在 Google Apps 脚本中检索有效访问令牌

    以下是 Spotify API 的文档 我使用的是隐式授权流程 https beta developer spotify com documentation general guides authorization guide implic