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

Sonos createToken API调用返回400 server_error问题求助

排查Sonos createToken API返回400 server_error的常见原因

针对你遇到的问题,结合Sonos OAuth认证机制,整理几个核心排查点:

  • 授权码不可重复使用:Sonos的授权码是一次性的,一旦用它调用过createToken接口,再次使用就会返回错误。确认你用的是刚获取的全新授权码。
  • Base64编码对象错误:Authorization头里的Base64内容必须是开发者应用的Client ID和Client Secret(用冒号:拼接),不是你的用户登录账号密码。比如ClientID123:Secret456编码后的值才是正确的。
  • 重定向URI完全匹配:确保请求中的redirect_uri和你在Sonos开发者后台设置的地址完全一致,包括是否带结尾斜杠、域名/IP、端口号。比如后台设的是http://localhost:8080,就不能写成http://localhost:8080/或http://127.0.0.1:8080。
  • 请求参数传递方式错误:Sonos的/login/v3/oauth/access接口要求授权相关参数放在POST请求体中,而非URL的查询参数里。你当前的curl命令把参数放在了URL上,这不符合接口要求。
  • 授权码过期:Sonos授权码的有效期通常只有几分钟,获取后需立即调用createToken接口,超时会导致无效。

修正后的Curl命令示例

curl --location --request POST 'https://api.sonos.com/login/v3/oauth/access' \
--header 'Content-Type: application/x-www-form-urlencoded;charset=utf-8' \
--header 'Authorization: Basic {替换为ClientID:ClientSecret的Base64编码值}' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code={替换为刚获取的授权码}' \
--data-urlencode 'redirect_uri=http://localhost:8080'

另外检查Authorization头的格式,Basic后面必须有一个空格,不要遗漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:23:21