接口鉴权
1.1 接口调用及鉴权
阿里云API接口会为每一个项目颁发一套鉴权密钥,密钥包含appkey、appsecrt,您可以通过这套密钥创建多个小区进行管理,请下载SDK进行接口调用https://github.com/aliyun/iotx-api-gateway-client。
1.1.1 获取小区授权token
path | 请求方法 | 版本 | 描述 |
/solution/community/paas/token/get | POST | 1.0.0 | 获取云端资源Token;该接口对于同一个res(小区id,参见请求参数说明)在token失效前仅需要调用一次,如果再次调用,则会生成新的cloudToken,并会导致之前的cloudToken失效 |
请求参数
参数 | 类型 | 必填 | 描述 |
communityId | Long | 是 | 小区ID |
返回参数
参数 | 类型 | 描述 |
cloudToken | String | 云端Token |
expiresIn | long | Token有效期(单位:ms) |
1.1.2 刷新小区授权token
path | 版本 | 描述 |
/solution/community/paas/token/refresh | 1.0.0 | 刷新云端Token |
请求参数
参数 | 类型 | 必填 | 描述 |
cloudToken | String | 是 | - |
返回参数
参数 | 类型 | 描述 |
cloudToken | String | 云端Token |
expiresIn | long | Token有效期(单位:ms) |
获取token后,即以项目身份访问项目资源,账号,设备,空间,隔离ID均一致。
使用方式:
IoTApiRequest request = new IoTApiRequest();
//设置API的版本
request.setApiVer("1.0.0");
request.setCloudToken("XXXXXXX");
下文未做特殊说明情况下,接口访问均加上cloudToken。
1.2 数据订阅及鉴权
请查看在线文档:https://help.aliyun.com/document_detail/114862.html?#h1-5-5。
数据订阅示例
当正确按照在线文档配置好订阅逻辑后,当有记录变更(新增或者变更时),会受到消息通知payload中带有数据变更的id:
// 模型ID
String modelId;
// 变更数据的ID
List<Long> dataIds;
// 操作类型:insert/update/delete
String operateType;
// 订阅的appId, 以appKey授权时为空
String appId;
使用上文在线文档中的数据查询接口,使用该ID可以查到变更的数据行,除了模型定义的业务字段外,同时返回授权隔离维度,scope_id字段,例如:
该scope_id与项目ID一一对应,使用1.10.2查询小区列表接口,使用该ID作为入参可以对应到具体的小区信息。注意,推送时会有多个隔离ID的推送,过滤使用小区项目ID的数据。