Appearance
HTTPS连接通信
概述
HTTPS(HyperText Transfer Protocol Secure)是基于HTTP协议,通过SSL加密的一种安全通信协议。对于业务场景为HTTPS协议的设备,您可以通过HTTPS接口将其接入设备管理平台。本文介绍使用HTTPS连接通信的接入流程。
使用限制
描述 | 限制 |
---|---|
请求方式 | 仅支持POST请求方法。 |
上报消息 | 通过HTTPS协议接入的设备,可以向平台上报消息,但HTTPS协议接入的设备无法接收平台下发的指令消息。 如果您希望设备能被动接收平台的消息,可以使用MQTT协议接入设备。更多信息,请参见 Tlink协议。 |
请求数据类型 | HTTPS Header中的Content-Type必须为application/json。 |
接入流程
接入流程主要包含:进行设备认证以获得设备token、使用获取的token进行持续地数据上报。
- 认证设备,获取设备的token。 认证设备请求:
POST /ssl/auth |
Host: ${YourEndpoint} |
Content-Type: application/json |
body: {"productKey":"8725dfbe93a64c5db1653ca766c036ce","deviceName":"sn1234或mac123456","timestamp":"1632445949000","sign":"4AC02E63D4D6E80020492B310CAF4C42","signMethod":"hmacmd5"} |
body参数说明如下:
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
productKey | String | 是 | 产品唯一标识。 |
deviceName | String | 是 | 产品下的设备唯一标识。请注意,这里的设备唯一标识,请使用设备管理平台预注册设备时约定使用的设备唯一信息,如设备的MAC地址、IMEI或SN码等。 |
timestamp | String | 否 | 当前时间的时间戳。 |
sign | String | 是 | 签名。 加签方法:将所有提交给服务器的参数(sign、signMethod除外)按照字母顺序排序,然后将参数和值依次拼接(无拼接符号)。通过signMethod指定的加签算法,使用产品的ProductSecret,对加签内容进行加签。 加签计算示例如下: hmac_md5(productSecret, deviceNamesn1234productKey8725timestamp163*)。 |
signMethod | String | 否 | 签名方法,目前支持hmacmd5、hmacsha1、hmacsha256,不传默认是hmacmd5。 |
返回结果示例::
json
{
"code": "0",
"msg": "success",
"data": "856c3bc5c1724425aebdf1678705daae"
}
错误码说明如下:
code | message | 备注 |
---|---|---|
10000 | common error | 未知错误。 |
10001 | param error | 请求的参数异常。 |
20000 | auth check error | 设备鉴权失败。 |
20004 | update session error | 更新失败。 |
2.上报数据 设备发送数据到某个Topic,只支持发布权限的Topic,支持自定义Topic。
POST /ssl/topic |
Host: ${YourEndpoint} |
token: ${your_token} |
Content-Type: application/json |
body: ${your_data} |
上报数据body参数说明:
参数名称 | 类型 | 是否必选 | 描述 |
---|---|---|---|
reqid | String | 是 | 请求唯一标识。 |
v | String | 是 | 协议版本号,目前协议版本号唯一取值为1 |
t | long | 否 | 当前时间的时间戳。 |
method | String | 是 | 请求方法相当于mqtt的topic。上报属性示例:tlink/${productKey}/${deviceName}/event/propertyReport/post,${productKey}和${deviceName}替换为实际的值 |
spec | String | 否 | 扩展功能的参数,其下包含各功能字段。平台可扩展,或可自行扩展,自行扩展的参数需在自定义解析模块自行解析 |
data | Object | 否 | 事件输出参数。如以上示例中,设置属性:{ "temperature": "30.5" }。 |
返回结果示例::
json
{
"code": "0",
"msg": "success",
"data": "856c3bc5c1724425aebdf1678705dkkk"
}
错误码说明如下:
code | message | 备注 |
---|---|---|
10000 | common error | 未知错误。 |
10001 | param error | 请求的参数异常。 |
20001 | token is expired | token失效。需重新调用auth进行鉴权,获取token。 |
20002 | token is null | 请求header中无token信息。 |