我试图通过云API控制Sonos One(第1代)扬声器,但是所有POST请求都返回500 Internal Server Error,而没有错误消息。
我按照文档中的描述生成了一个access_token,并能够获取有关网络内部“家庭”的信息,最后是组ID和玩家ID。
我试图通过在以下端点上执行GET来获取有关组状态的信息,并且该方法有效:
https://api.ws.sonos.com/control/api/v1/groups/{{group_id}}/playback
与其他GET请求相同(例如groupVolume)。 当我尝试进行POST(例如更改音量或播放audioClip)时出现问题,它返回500 Internal Server Error,没有任何内容。
对于我正在使用Postman的所有请求,包括作为标题:
在更改量请求的正文中,我选择 raw 选项,然后选择 JSON(application / json)选项。 / p>
身体是:
{
"volume": 80
}
端点如下:https://api.ws.sonos.com/control/api/v1/groups/{{group_id}}/groupVolume
我还尝试通过节点(Package)控制播放器,并且该播放器有效。
还尝试使用Wireshark来查看node-sonos软件包正在执行的请求,但似乎未使用Cloud API。
我希望播放器更改音量,但是API不会执行任何操作,也不会返回任何错误消息。
编辑:
来自POSTMAN的cURL请求如下:
curl -X POST \
https://api.ws.sonos.com/control/api/v1/players/<playerID>/audioClip \
-H 'authorization: Bearer XXX' \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: XXX' \
-d '{
"appId": "edu.myInstitute.myName",
"clipType": "CUSTOM",
"name": "Test",
"streamUrl": "http://...mp3_file_url"
}'