Coap通信接入文档
1、设备认证请求:
POST /auth
Host: ${YourEndpoint}
Port: 5683
Accept: application/json
Content-Format: application/json
payload: {"productKey":"a1NUjcV****","deviceName":"ff1a11e7c08d4b3db2b1500d8e0e55","clientId":"a1NUjcV****&ff1a11e7c08d4b3db2b1500d8e0e55","sign":"F9FD53EE0CD010FCA40D14A9FE******"}
表 1. 设备认证参数说明
参数 | 说明 |
---|---|
Method | 请求方法,只支持POST方法。 |
URL | URL地址,取值:/auth。 |
Host | Endpoint地址。 |
Port | 端口,取值:5683。 |
Accept | 设备接收的数据编码方式。目前,支持方式:application/json |
Content-Format | 设备发送给物联网平台的上行数据的编码格式,目前,支持方式:application/json |
payload | 设备认证信息内容,JSON数据格式。具体参数,请参见下表Payload说明。 |
表 2. Payload 说明
字段名称 | 是否必需 | 说明 |
---|---|---|
productKey | 是 | 设备证书信息中ProductKey的值,是物联网平台为产品颁发的全局唯一标识。 |
deviceName | 是 | 设备证书信息中DeviceName的值,在注册设备时自定义或自动生成的设备名称。 |
sign | 是 | 签名。您需将根据签名计算方法signmethod(DeviceSecret,content)计算出的值,作为sign的值。支持hmacmd5和hmacsha1方法。 |
signmethod | 否 | 算法类型,支持hmacmd5和hmacsha1。默认是hmacmd5。 |
clientId | 是 | 客户端ID,长度需在64字符内。建议使用设备的MAC地址或SN码作为clientId的值。 |
timestamp | 否 | 时间戳。目前,时间戳不做时间窗口校验。 |
签名计算所需参数:
• signmethod:签名方法,需与您的传入signmethod取值一致。
• DeviceSecret:设备的DeviceSecret。可在物联网平台控制台的设备详情页查看。
• content:是将所有提交给服务器的参数(除sign和signmethod外),按照英文字母升序,依次拼接排序(无拼接符号)。
说明 用于签名计算的参数值需与设备认证请求中提交的参数值一致。
签名计算示例:
hmac_md5(mRPVdzSMu2nVBxzK77ERPIMxSYIv****, clientIda1NUjcV****&ff1a11e7c08d4b3db2b1500d8e0e55deviceNameff1a11e7c08d4b3db2b1500d8e0e55productKeya1NUjcV****seq10timestamp1524448722000)
返回结果示例:
{"token":"MZ8m37hp01w1SSqoDFzo001050****"}
表 3. 返回参数说明
字段名称 | 说明 |
---|---|
token | 设备认证成功后,返回的Token值。 |
2、上报数据
上报数据请求:
POST /topic?topic=${topic}
Host: ${YourEndpoint}
Port: 5683
Accept: application/json
Content-Format: application/json
payload: ${your_data}
CustomOptions: number:2088
表 4. 上报数据参数说明
字段名称 | 是否必需 | 说明 |
---|---|---|
Method | 是 | 请求方法,只支持POST方法。 |
URL | 是 | 传入格式:/topic?topic=${topic}。其中,变量${topic}需替换为设备数据上行Topic。 |
Host | 是 | Endpoint地址。 |
Port | 是 | 端口,取值:5683。 |
Accept | 是 | 设备接收的数据编码方式。目前,支持方式:application/json |
Content-Format | 是 | 上行数据的编码格式,服务端对此不做校验。目前,支持方式:application/json |
payload | 是 | 待上传的数据 |
CustomOptions | 是 | option值2088:• 2088:表示token,取值为设备认证后返回的token值。 |
说明 每次上报数据都需要携带token信息。如果token失效,需要重新进行设备认证,获取token。
token除了写在options中,还可以写在URL中,例如/topic?topic=${topic}&token=xxxx。如果同时存在于options和URL中,以options为准。