上云无忧 > 文档中心 > 百度智能云物联网核心套件 IoT Core - 通过HTTP发布消息
物联网核心套件 IoT Core
百度智能云物联网核心套件 IoT Core - 通过HTTP发布消息

文档简介:
IoT Core 支持使用 HTTP 和 HTTPS 来进行消息单向发布(设备到云)。 获取 HTTP/HTTPS 接入点地址: 在 IoT Core 详情页可以查看。也可通过 IoTCoreId+ .iot.+Region+.baidubce.com 拼接出来,其中 Region 即地域,在创建 IoT Core 当前支持广州gz。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

IoT Core 支持使用 HTTP 和 HTTPS 来进行消息单向发布(设备到云)。

获取 HTTP/HTTPS 接入点地址

在 IoT Core 详情页可以查看。也可通过 IoTCoreId+ .iot.+Region+.baidubce.com 拼接出来,其中 Region 即地域,在创建 IoT Core 当前支持广州gz。

服务端口号

HTTP 可以使用 HTTP 或 HTTPS 两种方式连接和消息发布,对应端口如下:

协议 端口 描述
HTTP 80 非加密 HTTP 连接
HTTPS 443 基于 TLS 加密的 HTTPS 连接

使用时可根据实际场景进行选择。

连接鉴权信息

在设备详情页,连接信息栏目,找到「DeviceSecret」字段,点击右侧小眼睛图标,查看连接信息,包含IoTCoreId、DeviceKey 和 DeviceSecret 或证书。

生成用户名及密码(设备密钥认证)

若创建设备时选的密钥认证,则需通过拼接获得连接用户名,并通过加密算法生成连接所需密码。

打开 连接信息生成器 ,使用拿到的 IoTCoreId、DeviceKey 和 DeviceSecret,生成 MQTT 连接所需的用户名及密码。

具体加密算法。

用户名拼接:

用户名拼接方式为 {adp_type}@{IoTCoreId}|{DeviceKey}|{timestamp}|{algorithm_type},其中:

字段 说明
adp_type 认证方式类型,当前仅支持取值“thingidp”
IoTCoreId 对应 IoT Core 的 ID
device_key 设备标识,一般为设备名称
timestamp 生成签名时的时间戳,以秒为单位,长整数。可以不用传入。
algorithm_type 字符串签名算法类型,取值 MD5 或 SHA256,不传入则默认为 MD5

密码生成:

1、组合加密字符串:{device_key}&{timestamp}&{algorithm_type}{device_secret},其中:

字段 说明
device_key 设备标识,一般为设备名称
timestamp 生成签名时的时间戳,以秒为单位,长整数。如果无时钟服务,可以不用传入正确的时间戳,但必须传入0进行占位且在组合username时不传入对应timestamp值。
algorithm_type 字符串签名算法类型,取值 MD5 或 SHA256
device_secret 平台提供的密钥

2、进行加密

使用MD5或者SHA256,对加密字符串进行加密。具体过程如下:

获取加密字符串的UTF-8字符集比特数组,按选定的加密方式,对1中得到比特数组使用MD5或者SHA256进行加密,并将结果转换为小写形式。

示例

一个设备的连接信息为

IoTCoreId: abcd123
DeviceKey: mydevice
DeviceSecret: ImSeCrEt0I1M2jkl
时间戳: 1583826857

则当其选择 MD5 加密情况下

用户名 待加密字符串 密码 时间戳
thingidp@abcd123|mydevice|1583826857|MD5 mydevice&1583826857&MD5ImSeCrEt0I1M2jkl 7f0e63d2c6e122100edde19e34e7df5b 使用
thingidp@abcd123|mydevice 或
thingidp@abcd123|mydevice|0|MD5
mydevice&0&MD5ImSeCrEt0I1M2jkl 22bc75231495220c7a2202fe15f7d286 不使用

使用方式

权限认证

通过向接入点({iotCoreid}.iot.gz.baidubce.com/auth) POST 验证 username 和 password,换取消息发送所需的 token。

方法 API 说明
POST /auth 获取鉴权 token

请求参数

参数名称 是否必须 说明
username 必选 上文中组合得到的用户名
password 必选 上文中计算得到的密码
Accept 可选 当前只支持application/json
tokenLifeSpanInSeconds 可选 token有效时长,默认600秒

请求示例

POST /auth HTTP/1.1
Host:axxxxxx.iot.gz.baidubce.com
Accept: application/json
Content-Type: application/json
Body: {"username":"thingidp@axxr***","password":"7a793***","tokenLifeSpanInSeconds":300}

认证成功返回示例

{"token":"eyJ0eXAiOiJKV***.eyJpc3MiOiJJT1RfQVVUSC0i***.t4I8jkCchRIPzGNeIgWYhDVFHuW***"}

认证失败返回示例

{
    "code": "Unauthenticated",
    "message": "Username and password is not matched"
}

消息发布

通过向接入点({iotCoreid}.iot.gz.baidubce.com/pub) POST 方式来 Pub 消息。

方法 API 说明
POST /pub 发送消息

请求参数

参数名称 是否必须 说明
token 必选 上文中认证后返回的token值
topic 必选 消息需要发送到的主题
qos 必选 消息qos,支持0或者1
Accept 可选 当前只支持application/json

请求示例

POST /pub?topic=mytopic&qos=0 HTTP/1.1
Host:${IotCoreid}.iot.gz.baidubce.com
Accept: application/json
Content-Type: application/octet-stream
token: "eyJ0eXAiOiJKV***.eyJpc3MiOiJJT1RfQVVUSC0i***.t4I8jkCchRIPzGNeIgWYhDVFHuW***"

认证成功返回示例

{"message": "ok"}

认证失败返回示例

{
    "code": "Unauthenticated",
    "message": "No permit to operate the topic"
}
相似文档
  • IoT Core 支持通过 CoAP 协议发布消息。 获取 CoAP 接入点地址: 在 IoT Core 详情页可以查看。也可通过 IoTCoreId+ .iot.+Region+.baidubce.com 拼接出来,其中 Region 即地域,在创建 IoT Core 当前支持广州gz。
  • 概述: 一般情况下,设备与 IoT Core 进行连接之后,需要在服务端开发对应业务系统以查看、管理、控制设备相关数据。应用权限即是用于满足此场景下鉴权需求的功能。
  • 定义: 设备影子是设备在云端的虚拟映射(可以理解为一个json文档),用来记录设备的最近状态和预期状态,通过设备影子可以轻松实现云端对设备状态的管控。
  • 概述: 本文介绍如何通过控制台创建和管理 IoT Core 的设备预配功能。此功能已在 IoT Core 官方 Android SDK 中集成,可通过工单申请。若使用其他语言 SDK 或开源 SDK 可通过下述接口对接。
  • 规则引擎简介: 使用规则引擎功能,可将Topic中的数据消息转发至其他Topic或其他百度云产品进行存储或处理。 规则引擎目前处于公测阶段,因规则引擎造成消息失败暂不计入物联网核心套件SLA,使用过程如遇到问题请发起工单进行反馈。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部