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

SoundCloud JS SDK的SC.Get()返回401,如何配置OAuth Token到请求头?

问题排查结论

首先明确:这不是你的操作错误,也不是官方预期的正常行为,是你使用的3.3.2版本JavaScript SDK和SoundCloud最新的接口鉴权规则不兼容导致的。该版本SDK发布于官方推行OAuth Token通过请求头传递规则之前,默认会将鉴权Token拼接在URL的查询参数中,不符合当前接口的鉴权要求,因此返回401错误。
该版本SDK支持通过传参配置自定义请求头,具体修复方案如下。

修复方案
  • 方案1:配置SDK全局请求头(无需修改SDK源码)
    拿到OAuth授权返回的access_token后,先执行全局配置即可,原有调用逻辑不需要大幅调整:
// 原初始化逻辑保留
SC.initialize({
  client_id: '你的客户端ID',
  // 其他原有初始化参数
});
// 拿到accessToken后追加全局鉴权头
SC.headers = {
  'Authorization': `OAuth ${替换为实际拿到的accessToken变量}`
};

// 原有SC.get调用不需要修改,注意不要在properties里传入oauth_token参数即可
var route='/me/activities'      
var properties = {
  limit: 50
};
SC.get(route, properties, function(data) {
  // 原有业务逻辑
})
  • 方案2:自行封装HTTP请求绕开SDK内置方法
    如果配置全局头不生效,可以直接不用SC.get方法,自己用原生fetch或其他请求库发起请求,兼容性更强:
const accessToken = '替换为实际拿到的accessToken';
fetch('https://api.soundcloud.com/me/activities?limit=50', {
  method: 'GET',
  headers: {
    'Authorization': `OAuth ${accessToken}`,
    'Accept': 'application/json'
  }
}).then(res => res.json()).then(data => {
  // 原有业务逻辑
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 23:54:04