Sonos Cloud API HTTP POST всегда возвращает 500 - PullRequest
0 голосов
/ 02 июля 2019

Я пытаюсь управлять своим динамиком Sonos One (Gen 1) через облачные API, но весь запрос POST возвращает 500 Internal Server Error без сообщения об ошибке.

Я сгенерировал access_token, как описано в документации, исмог получить информацию о «домохозяйствах» внутри моей сети, наконец, и идентификатор группы, и идентификатор игрока.

Я попытался получить информацию о статусе группы, выполнив GET для следующей конечной точки иэто сработало: https://api.ws.sonos.com/control/api/v1/groups/{{group_id}}/playback

То же самое с другими GET-запросами (например, groupVolume).Проблема возникает, когда я пытаюсь сделать POST (например, изменить громкость или воспроизвести аудиоклип), он возвращает 500 Internal Server Error без какого-либо тела.

Для всех запросов, которые я использую Postman, включая заголовки:

  • Тип содержимого: application / json
  • Авторизация: Носитель [токен]
  • Длина содержимого: ???(автоматически вставляется почтальоном)

, а для тела запроса change volume я выбираю параметр raw и затем выбираю JSON (приложение/ json) опция.

Тело:

{
  "volume": 80
}

Конечная точка следующая: https://api.ws.sonos.com/control/api/v1/groups/{{group_id}}/groupVolume

Я также пытался управлять игроком с помощью узла( Package ) и он работает.

Также пытался использовать Wireshark, чтобы увидеть, какие запросы выполняет пакет node-sonos, но, похоже, он не использует Cloud API.

Я ожидаю, что проигрыватель изменит громкость, но API ничего не делает и не возвращает никаких сообщений об ошибках.

РЕДАКТИРОВАТЬ: Запрос cURL от POSTMAN следующий: 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" }'

...