HTTP协议接入
物联网平台
${endpoint}/api/iot-link/auth/v1/${instanceId}/publish?topic=${topic}
(注意topic
要进行URL编码)。接入流程
1.
参数 | 说明 |
---|---|
Method | 请求方法,只支持POST方法。 |
URL | URL地址,只支持HTTPS,取值:/auth。 |
Host | HTTP接入地址 |
Content-Type | 设备发送给物联网平台的上行数据的编码格式,目前只支 持application/json。若使用其他编码格式,会返回参数错误。 |
Content-Length | HTTP消息体body的传输长度。重要对于字段Content-Length,HTTP/1.1及之后版本协议中,默认已携带,HTTP/1.0及之前版本协议中,默认未携带。使用HTTP协议认证设备时,必须传入字段Content-Length。字段Content-Length值必须与body传输长度完全一致,否则无法正确解析body内容,设备认证会失败。 |
body | 设备认证信息。JSON数据格式。具体信息,请参见下表。 |
字段名称 | 是否必需 | 说明 |
---|---|---|
productId | 是 | 设备所属产品的productId。可从物联网平台控制台对应实例下的设备详情页面获取。 |
deviceId | 是 | 设备ID。可从物联网平台控制台对应实例下的设备详情页面获取。 |
clientId | 是 | 客户端ID。长度为64字符内,建议以MAC地址或SN码作为clientId。 |
timestamp | 否 | 时间戳。校验时间戳15分钟内的请求有效。时间戳格式为数值,值为 自GMT 1970年01月01日0时0分到当前时间点所经过的毫秒数。 |
sign | 是 | 签名。签名计算格式为hmacmd5(DeviceSecret,content) 。其中,content为将所有提交给服务器的参数(除version、sign和signmethod外),按照英文字母升序,依次拼接排序(无拼接符号)的结果。签名示例:假设clientId = 127.0.0.1,deviceId = http_test,productId = a1FHTWxQ****,timestamp = 1567003778853,signmethod = hmacmd5,deviceSecret = 89VTJylyMRFuy2T3sywQGbm5Hmk1****,签名计算为:hmacmd5("89VTJylyMRFuy2T3sywQGbm5Hmk1****","clientId127.0.0.1deviceIdhttp_testproductIda1FHTWxQ****timestamp1567003778853").toHexString(); 其中,toHexString() 是将计算结果二进制数据的每个byte按4 bit转化为十六进制字符串,大小写不敏感。例如,计算结果byte数组是:[60 68 -67 -7 -17 99 30 69 117 -54 -58 -58 103 -23 113 71],转换后得到的字符串为:3C44BDF9EF631E4575CAC6C667E97147。 |
signmethod | 否 | 算法类型,支持hmacmd5和hmacsha1。若不传入此参数,则默认为hmacmd5。 |
version | 否 | 版本号。若不传入此参数,则默认default。 |
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1aWQiOiI2QVpDZ1gxMTA3NjczNzQzNzg3MzUyMDY0IiwiZGV2aWNlSWQiOiI2QVpDZ1gxMTA3NjczNzQzNzg3MzUyMDY0IiwicHJvZHVjdElkIjoiQzFNZmxZeDVhTGtNd0ZMek5Nd2E5M2l1ZCIsImNsaWVudElkIjoiMTIzNDUiLCJpYXQiOjE2ODY4MzMyNDcsImV4cCI6MTY4Njg0MDQ0N30.JcuyyPqYMSgwUhXxGLClb6Ev7Th31uPbe6ccgEo0a7w"
}
2.
sys/{product_id}/{device_id}/thing/properties/up
,假设当前设备ID为device123,产品的ProductKey为a1GFjLP****,那么您可以调用 /api/iot-link/auth/v1/${instanceId}/publish?topic=sys%2Fa1GFjLP****%2Fdevice123%2Fthing%2Fproperties%2Fup
地址来上报数据。
参数 | 说明 |
---|---|
Method | 请求方法,只支持POST方法。 |
URL | /api/iot-link/auth/v1/${instanceId}/publish?topic=${topic} 。其中,变量${topic} 需替换为数据发往的目标Topic,并且需要进行URL编码 |
Host | Endpoint地址。 |
Authorization | Bearer ${token} ,token取值为调用设备认证接口auth返回的token值。 |
Content-Type | 设备发送给物联网平台的上行数据的编码格式,目前仅支持application/octet-stream。若使用其他编码格式,会返回参数错误。 |
Content-Length | HTTP消息实体的传输长度。 |
body | 发往${topic}的数据内容。数据内容的格式参考MQTT的Topic定义 |
ack
值为1,则返回具体失败原因,例如:{
"id": "519acb72-29a9-4a51-9317-b1eeb811481e",
"code": 460,
"message": "[TSLParser] 6AZCgX1107673743787352064:properties:#0000:CurrentTemperature: the float must between 2.1 ~ 38.0"
}
修改于 2023-06-16 02:11:41