Отправка сообщения облако на устройство Azure IoT Hub с REST api, конечной точкой - PullRequest
1 голос
/ 14 июня 2019

Я пытаюсь отправить сообщение на мое устройство из облака, используя Azure IoT Hub и REST api (не используя Azure IoT hub python SDK).

Я могу успешно отправить сообщение (запрос POST) на концентратор с устройства с помощью uri https://<myiothub>.azure-devices.net/devices/<devid>/messages/events?api-version=2018-06-30. В документации на https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-messages-c2d говорится, что есть конечная точка на стороне обслуживания на /messages/devicebound. Однако они не показывают полный пример, поэтому я не совсем уверен, какую конечную точку мне следует использовать, и как / где указать, какое устройство отправлять.

Я все равно попробовал следующее:

curl -v POST \
  https://<myhub>.azure-devices.net/messages/devicebound?api-version=2018-06-30 \
  -H 'Authorization: SharedAccessSignature <sas>' \
  -H 'Content-Type: application/json' \
  -d '{
    "payload": {
      "key": "value"
    }
  }'

где генерируется с помощью Azure CLI az iot hub generate-sas-token -n <myhub>. Я получаю сообщение об ошибке

{"Message":"ErrorCode:ArgumentInvalid;Request must contain IoTHub custom 'To' header","ExceptionMessage":"Tracking ID:ec98ff8...

где я отрезаю конец. Поэтому я попытался добавить заголовок «Кому», который независимо от того, что я помещаю, возвращает одно и то же сообщение об ошибке.

Я также попробовал то, что предлагается здесь API-интерфейс REST API Azure IoT для облачных вычислений , а именно для отправки через конечную точку https://main.iothub.ext.azure.com/api/Service/SendMessage/,, но безуспешно.

1 Ответ

0 голосов
/ 23 июня 2019

Чтобы получить сообщение Cloud to Device от конца устройства с помощью IoT Hub API, вам нужно будет выполнить следующий запрос -

curl -X GET \
  'https://{your hub}.azure-devices.net/devices/{your device id}/messages/deviceBound?api-version=2018-06-30' \
  -H 'Authorization: {your sas token}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...