产品的SDK示例
以下是查询产品数据示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;import com.afu.common.sdk.config.AfuOpenApiConfig;import com.afu.common.sdk.dataobject.ProductInfo;import com.afu.common.sdk.mqtt.AfuOpenApiBase;import com.afu.common.sdk.openapi.AfuOpenApi;public class TestOpenApi {public static void main(String[] args) throws Exception {//传入userAccessKey和userSecretAfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();afuOpenApiConfig.setAccessKey("userAccessKey");afuOpenApiConfig.setSecret("userSecret");AfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);//实例化AfuOpenApi,其中方法能直接进行相应操作AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);ProductInfo productInfo=new ProductInfo();productInfo.setUserCode("userCode");String product = afuOpenApi.getProductList(productInfo);System.out.println("得到的返回数据:"+product);}}
在上述代码中的第18行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(查询产品列表),下面将对其中方法进行使用介绍:
返回数据介绍
| 名称 | 类型 | 示例值 | 描述 |
|---|---|---|---|
| message | String | success | 返回信息 |
| model | Object | success | 返回结果实体 |
| status | String | 200 | 状态码,请参见 错误码文档。 |
产品相关方法介绍:
查询产品列表:getProductList
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| userCode | String | 是 | “sahdajsedq” | 用户编码 |
返回数据实体示例
{"status":200,"message":"success",[{"userCode": "USERCODE", //用户编码"productCode": "PRODUCTCODE", //产品编码"name": "NAME", //产品名称"category": 1, //产品品类(1:标准品类 2:自定义)"nodeType": 1, //节点类型(1:节点直连 2:网关类型 3:网关子设备)"networkingMode": 1, //联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他)"dataFormat": 2, //数据格式(1:自定义格式 2:标准JSON)"authMode": "1", //认证方式"productKey": "PRODUCTKEY", //系统生成开放产品key"productSecret": "PRODUCTSECRET", //系统生成开放产品密钥"remarks": "REMARKS", //产品描述"createTime": "2021-05-25T11:11:58.000+00:00"},{...}]}
查询产品:getProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| productCode | String | 是 | “sahdajsedq” | 产品编码 |
返回数据实体示例
{"status":200,"message":"success","model":{"deviceSize": "0","productInfo": {"userCode": "USERCODE", //用户编码"productCode": "PRODUCTCODE", //产品编码"name": "NAME", //产品名称"category": 1, //产品品类(1:标准品类 2:自定义)"nodeType": 1, //节点类型(1:节点直连 2:网关类型 3:网关子设备)"networkingMode": 1, //联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他)"dataFormat": 2, //数据格式(1:自定义格式 2:标准JSON)"authMode": "1", //认证方式"productKey": "PRODUCTKEY", //系统生成开放产品key"productSecret": "PRODUCTSECRET", //系统生成开放产品密钥"remarks": "REMARKS", //产品描述"createTime": "2021-05-25T11:11:58.000+00:00"}}}
删除产品:deleteProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| productCode | String | 是 | “sahdajsedq” | 产品编码 |
返回数据实体示例
{"status":200,"message":"success"}
修改产品:updateProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| productCode | String | 是 | “sasdada” | 产品编码 |
| userCode | String | 是 | “sahdajsedq” | 用户编码 |
| name | String | 是 | 智能灯 | 产品名称 |
| remarks | String | 否 | 智能灯真好看 | 描述 |
返回数据实体示例
{"status":200,"message":"success"}
创建产品:saveProduct
请求参数:
该请求参数为实体类 ProductInfo 的属性,开发者只需实例化一个ProductInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| userCode | String | 是 | “sahdajsedq” | 用户编码 |
| name | String | 是 | 智能灯 | 产品名称 |
| category | Integer | 是 | 1 | 产品品类(1:标准品类 2:自定义) |
| nodeType | Integer | 是 | 1 | 节点类型(1:节点直连 2:网关类型 3:网关子设备) |
| networkingMode | Integer | 是 | 1 | 联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他) |
| dataFormat | Integer | 是 | 1 | 数据格式(1:自定义格式 2:标准JSON) |
| authMode | String | 是 | 1 | 认证方式 |
| remarks | String | 否 | 智能灯真好看 | 描述 |
返回数据实体示例
{"status":200,"message":"success","model":{"userCode": "USERCODE", //用户编码"productCode": "PRODUCTCODE", //产品编码"name": "NAME", //产品名称"category": 1, //产品品类(1:标准品类 2:自定义)"nodeType": 1, //节点类型(1:节点直连 2:网关类型 3:网关子设备)"networkingMode": 1, //联网方式(1:WIFI 2:蜂窝 3:以太网 4:其他)"dataFormat": 2, //数据格式(1:自定义格式 2:标准JSON)"authMode": "1", //认证方式"productKey": "PRODUCTKEY", //系统生成开放产品key"productSecret": "PRODUCTSECRET", //系统生成开放产品密钥"remarks": "REMARKS", //产品描述"createTime": "2021-05-25T11:11:58.000+00:00"}}
设备的SDK示例
以下是设备分页列表数据示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;import com.afu.common.sdk.config.AfuOpenApiConfig;import com.afu.common.sdk.dataobject.DeviceInfo;import com.afu.common.sdk.dataobject.PageInfo;import com.afu.common.sdk.mqtt.AfuOpenApiBase;import com.afu.common.sdk.openapi.AfuOpenApi;import net.sf.json.JSONObject;public class TestOpenApi {public static void main(String[] args) throws Exception {//传入userAccessKey和userSecretAfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();afuOpenApiConfig.setAccessKey("userAccessKey");afuOpenApiConfig.setSecret("userSecret");AfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);//实例化AfuOpenApi,其中方法能直接进行相应操作AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);DeviceInfo deviceInfo = new DeviceInfo();deviceInfo.setUserCode("usercode");PageInfo pageInfo=new PageInfo();pageInfo.setPageNum("1");pageInfo.setPageSize("2");String deviceList = afuOpenApi.getDeviceList(deviceInfo, pageInfo);System.out.println("得到的返回数据:"+deviceList);}}
在上述代码中的第20行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(查询设备分页列表),下面将对其中方法进行使用介绍:
返回数据介绍
| 名称 | 类型 | 示例值 | 描述 |
|---|---|---|---|
| message | String | success | 返回信息 |
| model | Object | success | 返回结果实体 |
| status | String | 200 | 状态码,请参见 错误码文档。 |
设备相关方法介绍:
查询分页设备列表:getDeviceList
请求参数1:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| userCode | String | 是 | “sahdajsedq” | 用户编码 |
| productCode | String | 否 | “sahdajsedq” | 产品编码 |
| deviceName | String | 否 | 智能灯 | 设备名称 |
| remarksName | String | 否 | “好看” | 描述备注 |
请求参数2:
该请求参数为实体类 PageInfo 的属性,开发者只需实例化一个PageInfo 对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| pageNum | String | 是 | “1” | 当前页码 |
| pageSize | String | 是 | “2” | 页量 |
返回数据实体示例
{"status":200,"message":"success","model":{"list": [ //设备数据列表{"userCode": "USERCODE", //用户编码"deviceCode": "DEVICECODE", //设备编码"productCode": "PRODUCTCODE", //IOT产品编码"deviceName": "DEVICENAME", //设备名称"status": 0, //设备状态(0:未激活 1:在线 2:离线 )"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥"remarks": "REMARKS", //描述备注"createTime": "2021-05-22T03:51:57.000+00:00" //创建时间},{......}],"totalCount": 16, //总记录数"pageNum": 1, //当前页码"totalPage": 8 //总页数}}
查询设备:getDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| deviceCode | String | 是 | “sahdajsedq” | 设备编码 |
返回数据实体示例
{"status":200,"message":"success","model":{"deviceInfo": { //设备信息实体类"userCode": "USERCODE", //用户编码"deviceCode": "DEVICECODE", //设备编码"productCode": "PRODUCTCODE", //IOT产品编码"deviceName": "DEVICENAME", //设备名称"status": 0, //设备状态(0:未激活 1:在线 2:离线 )"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥"remarks": "REMARKS", //描述备注"createTime": "2021-05-25T03:51:57.000+00:00" //创建时间}}}
删除设备:deleteDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| deviceCode | String | 是 | “sahdajsedq” | 设备编码 |
返回数据实体示例
{"status":200,"message":"success"}
修改设备:updateDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| deviceCode | String | 是 | “sahdajsedq” | 设备编码 |
| remarksName | String | 否 | “sahdajsedq” | 设备备注 |
| deviceConnection | String | 否 | “sahdajsedq” | 外接设备码 |
返回数据实体示例
{"status":200,"message":"success"}
创建设备:saveDevice
请求参数:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| userCode | String | 是 | “sahdajsedq” | 用户编码 |
| productCode | String | 是 | “sahdajsedq” | 产品编码 |
| productKey | String | 是 | “hjsdksah” | 系统生成开放产品key |
| deviceName | String | 是 | 智能灯 | 设备名称 |
| remarksName | String | 否 | “好看” | 描述备注 |
返回数据实体示例
{"status":200,"message":"success","model"[{ //设备信息实体类"userCode": "USERCODE", //用户编码"deviceCode": "DEVICECODE", //设备编码"productCode": "PRODUCTCODE", //IOT产品编码"deviceName": "DEVICENAME", //设备名称"status": 0, //设备状态(0:未激活 1:在线 2:离线 )"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥"remarks": "REMARKS", //描述备注"createTime": "2021-05-25T03:51:57.000+00:00" //创建时间}]}
批量创建设备:saveBatchDevice
请求参数1:
该请求参数为实体类 DeviceInfo 的属性,开发者只需实例化一个DeviceInfo 对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| userCode | String | 是 | “sahdajsedq” | 用户编码 |
| productCode | String | 是 | “sahdajsedq” | 产品编码 |
| productKey | String | 是 | “hjsdksah” | 系统生成开放产品key |
| deviceName | String | 是 | 智能灯 | 设备名称 |
| remarksName | String | 否 | “好看” | 描述备注 |
请求参数2:
该请求参数为String类型,表示需要批量创建的数量,开发者只需传入要批量创建的数量即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| batchNum | String | 是 | “11” | 批量创建的数量 |
返回数据实体示例
{"status":200,"message":"success","model"[{ //设备信息实体类"userCode": "USERCODE", //用户编码"deviceCode": "DEVICECODE", //设备编码"productCode": "PRODUCTCODE", //IOT产品编码"deviceName": "DEVICENAME", //设备名称"status": 0, //设备状态(0:未激活 1:在线 2:离线 )"deviceSecret": "DEVICESECRET", //系统生成开放设备密钥"remarks": "REMARKS", //描述备注"createTime": "2021-05-25T03:51:57.000+00:00" //创建时间},{......}]}
Topic的SDK示例
以下是查询Topic列表数据示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;import com.afu.common.sdk.config.AfuOpenApiConfig;import com.afu.common.sdk.dataobject.ProductTopicInfo;import com.afu.common.sdk.mqtt.AfuOpenApiBase;import com.afu.common.sdk.openapi.AfuOpenApi;import net.sf.json.JSONObject;public class TestOpenApi {public static void main(String[] args) throws Exception {//传入userAccessKey和userSecretAfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();afuOpenApiConfig.setAccessKey("userAccessKey");afuOpenApiConfig.setSecret("userSecret");AfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);//实例化AfuOpenApi,其中方法能直接进行相应操作AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);ProductTopicInfo productTopicInfo=new ProductTopicInfo();productTopicInfo.setProductCode("df23bf853ddf4e5e90fd335cf1e44c41");String topicList = afuOpenApi.getTopicList(productTopicInfo);System.out.println("得到的返回数据:"+topicList);}}
在上述代码中的第20行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(查询Topic列表),下面将对其中方法进行使用介绍:
返回数据介绍
| 名称 | 类型 | 示例值 | 描述 |
|---|---|---|---|
| message | String | success | 返回信息 |
| model | Object | success | 返回结果实体 |
| status | String | 200 | 状态码,请参见 错误码文档。 |
Topic相关方法介绍:
查询Topic列表:getTopicList
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| productCode | String | 是 | “sahdajsedq” | 产品编码 |
返回数据实体示例
{"status":200,"message":"success","model":[{"topicCode": "TOPICCODE", //产品topic编码"productCode": "PRODUCTCODE", //IOT产品编码"topicType": 1, //topic类型(1:基础通信 2:物模型通信 3:自定义)"functionType": 1, //功能类型(1:OTA升级 2:设备标签 3:时钟同步 4:设备影子 5:配置更新//6:广播 7:属性上报 8:属性设置 9:事件上报 10:服务调用//注意:如果topicType为3自定义,则没有此字段值)"topicName": "TOPICNAME", //产品topic类名称"authorityType": 1, //权限类型(1:发布 2:订阅 3:发布与订阅)"remarks": "REMARKS", //描述"createTime": "2021-05-25T11:11:58.000+00:00" //创建时间},{ ...... }]}
删除Topic:deleteTopic
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| topicCode | String | 是 | “sahdajsedq” | 产品topic编码 |
返回数据实体示例
{"status":200,"message":"success"}
修改Topic:updateTopic
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| topicCode | String | 是 | “sahdajsedq” | 产品topic编码 |
| topicName | String | 是 | “sahdajsedq” | 产品topic类名称 |
| authorityType | Integer | 是 | 1 | 权限类型(1:发布 2:订阅 3:发布与订阅) |
| remarks | String | 否 | “好看” | 描述 |
返回数据实体示例
{"status":200,"message":"success"}
创建Topic:saveTopic
请求参数:
该请求参数为实体类 ProductTopicInfo的属性,开发者只需实例化一个ProductTopicInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| topicCode | String | 是 | “sahdajsedq” | 产品topic编码 |
| topicName | String | 是 | “sahdajsedq” | 产品topic类名称 |
| authorityType | Integer | 是 | 1 | 权限类型(1:发布 2:订阅 3:发布与订阅) |
| remarks | String | 否 | “好看” | 描述 |
返回数据实体示例
{"status": 200,"message": "success","model": {"topicCode": "TOPICCODE", //产品topic编码"productCode": "PRODUCTCODE", //IOT产品编码"topicType": 1, //topic类型(1:基础通信 2:物模型通信 3:自定义)"functionType": 1, //功能类型(1:OTA升级 2:设备标签 3:时钟同步 4:设备影子 5:配置更新//6:广播 7:属性上报 8:属性设置 9:事件上报 10:服务调用//注意:如果topicType为3自定义,则没有此字段值)"topicName": "TOPICNAME", //产品topic类名称"authorityType": 1, //权限类型(1:发布 2:订阅 3:发布与订阅)"remarks": "REMARKS", //描述"createTime": "2021-05-25T11:11:58.000+00:00" //创建时间}}
发布消息的SDK示例
以下是发布消息示例
使用时请将如下示例中的userAccessKey和userSecret分别替换成您的accessKey 和secret(您需在安服优物联云管理后台个人中心页面查看您的账号的accessKey和secret)。
package com.afu.common.sdk.test;import com.afu.common.sdk.config.AfuOpenApiConfig;import com.afu.common.sdk.dataobject.TopicNewInfo;import com.afu.common.sdk.mqtt.AfuOpenApiBase;import com.afu.common.sdk.openapi.AfuOpenApi;import net.sf.json.JSONObject;public class TestOpenApi {public static void main(String[] args) throws Exception {//传入userAccessKey和userSecretAfuOpenApiConfig afuOpenApiConfig = new AfuOpenApiConfig();afuOpenApiConfig.setAccessKey("userAccessKey"); //userAccessKeyafuOpenApiConfig.setSecret("userSecret"); //userSecretAfuOpenApiBase afuOpenApiBase = new AfuOpenApiBase(afuOpenApiConfig);//实例化AfuOpenApi,其中方法能直接进行相应操作AfuOpenApi afuOpenApi =new AfuOpenApi(afuOpenApiBase);TopicNewInfo topicNewInfo =new TopicNewInfo();topicNewInfo.setContent("sdkTest");topicNewInfo.setProductKey("Pfp5sUpUqm8");topicNewInfo.setQos(0);topicNewInfo.setTopic("/sdkTest/Test");DeviceInfo deviceInfo = new DeviceInfo();deviceInfo.setDeviceName("deviceName");deviceInfo.setDeviceSecret("deviceSecret");String jsonObject = afuOpenApi.ReleaseNews(topicNewInfo,deviceInfo);System.out.println("得到的返回数据:"+jsonObject);}}
在上述代码中的第20行中,开发者在实例化AfuOpenApi对象成功后,在该对象下有多种方法,以上是其中一种(发布消息),下面将对其中方法进行使用介绍:
返回数据介绍
| 名称 | 类型 | 示例值 | 描述 |
|---|---|---|---|
| message | String | success | 返回信息 |
| model | Object | success | 返回结果实体 |
| status | String | 200 | 状态码,请参见 错误码文档。 |
发布消息:ReleaseNews
请求参数1:
该请求参数为实体类 TopicNewInfo的属性,开发者只需实例化一个TopicNewInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| productKey | String | 是 | DGHHddC554 | 为产品Key值,在物联网后台产品管理中获取 |
| topic | String | 是 | “topic1/topic2” | topic权限须为订阅或发布和订阅 |
| qos | Integer | 是 | 0 | qos值0,1,未开通2 |
| content | String | 是 | “test” | 消息内容 |
请求参数2:
该请求参数为实体类 DeviceInfo的属性,开发者只需实例化一个DeviceInfo对象,并传入相应属性即可
| 名称 | 类型 | 是否必选 | 示例值 | 描述 |
|---|---|---|---|---|
| deviceSecret | String | 是 | DGHHddC554 | 设备系统生成开放设备密钥 |
| deviceName | String | 是 | 智能灯 | 设备名称 |
返回数据实体示例
{"status":200,"message":"success"}
