You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Google Apps Scripts中获取Spotify API有效访问令牌的问题与解决

解决Google Sheets脚本调用Spotify API获取访问令牌的问题

我最近在Google Sheets里编写脚本,打算用Implicit Grant Flow调用Spotify API,结果在获取有效访问令牌时踩了两个坑,不过都顺利解决了,整理出来给遇到同样问题的朋友参考:

已解决问题1:unsupported_grant_type错误

  • 错误信息:

    "error":"unsupported_grant_type","error_description":"grant_type must be client_credentials, authorization_code or refresh_token"

  • 问题原因:UrlFetchApp.fetch的payload参数里没有指定正确的授权类型
  • 解决方案:在请求的payload中明确添加'grant_type':'client_credentials'字段

已解决问题2:405 Method Not Allowed错误

  • 错误信息:返回405状态码
  • 问题原因:一是误用了GET方法请求令牌(Spotify官方文档要求必须用POST),二是请求地址填写错误
  • 解决方案:将请求地址修正为https://accounts.spotify.com/api/token,同时把请求方法设置为POST

更新后的可用代码

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); 

内容的提问来源于stack exchange,提问作者wookieebreath

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:18:19