【问题标题】:Azure Invoke Device Module method using REST API使用 REST API 的 Azure 调用设备模块方法
【发布时间】:2020-04-17 00:09:54
【问题描述】:

我想使用 Azure 中的 Invoke Device Module API,我想使用 API 发送有效负载,该 API 将负责将消息从云发送到模块。我在关注这篇文章“https://docs.microsoft.com/en-us/rest/api/iothub/digitaltwinmodel/service/invokedevicemodulemethod

我正在使用邮递员执行此 API,但收到以下响应。

我在邮递员中添加了 2 个标头 1] 授权在此我添加了一个 BearerToken 和 2] 内容类型作为应用程序/json。我在正文部分给出了一个有效载荷。请让我知道这里可能出了什么问题,或者我是否需要以其他方式对其进行配置。

【问题讨论】:

    标签: azure postman azure-api-management


    【解决方案1】:

    URL http://azure-devices.net//twins 中有一个双斜杠。请您尝试正确的http://azure-devices.net/twins/

    【讨论】:

    • 感谢您指出。我更新了它,但错误仍然是一样的。
    【解决方案2】:

    我知道它是如何完成的。 我们需要做的就是在授权标头中使用 SAS Token 而不是 BearerToken 并使用以下正文。

    {
    "methodName": "name_of_your_method",
    "responseTimeoutInSeconds": 60,
     "payload": {
        "command": "your_message"}
    }
    

    API URL 是下面的 POST 方法

    "https://fully-qualified-iothubname.azure-devices.net/twins/{deviceId}/modules/{moduleId}/methods?api-version=2019-07-01-preview"
    

    使用以下命令生成 SAS 令牌,仅供参考 SAS 令牌在生成 1 小时后过期:

    az iot hub generate-sas-token -n Ageye
    

    这工作得很好,并给出以下响应:

    {
        "status": 200,
        "payload": {
            "status": "ok"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多