官方服务是由AIoT创新工厂基于平台能力提供的一系列服务,供ISV使用开发应用,后续会逐步引入更多官方服务。
1、消息推送服务
消息推送服务是基于平台已有的各个品类下的消息模板,由ISV调用发送接口进行多端消息推送的官方服务。该服务包含消息模板列表接口、消息模板详情接口、消息发送接口,ISV只有应用勾选了消息推送服务该应用才能使用调用该部分接口。
1.1、开发依赖
下载平台提供的sdk jar(aligenie-java-sdk-iotapplicationforopen-1.1.1.jar),同时加入以下maven依赖包,目前平台暂只支持基于java开发调用官方服务。
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><optional>true</optional><version>[4.5.1,5.0.0)</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency><dependency><groupId>commons-collections</groupId><artifactId>commons-collections</artifactId><version>3.2.2</version></dependency><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.3</version></dependency>
调用示例如下,其中regionId为固定值「cn-zhangjiakou」,IotApplicationComponent建议封装为spring bean或者单例提供。
MsgTemplateRequest msgTemplateRequest = new MsgTemplateRequest();msgTemplateRequest.setAccountId("xxxxx");msgTemplateRequest.setTemplateId("xxxxxxxxx");DefaultProfile profile = DefaultProfile.getProfile("cn-zhangjiakou", "xxxxx", "xxxxx");IAcsClient client = new DefaultAcsClient(profile);IotApplicationComponent iotApplicationComponent = new IotApplicationComponent();BaseResult<MsgTemplateResponse> result = iotApplicationComponent.getMessageTemplate(client, msgTemplateRequest);
1.2、 消息模板(列表)接口
API名称
IotApplicationComponent.getMessageTemplateList
API入参
| 名称 | 参数类型/SDK类型 | 是否必须 | 文档可见 | 默认值 | 示例值 | 更多限制 | 描述 |
|---|---|---|---|---|---|---|---|
| devType | String | 必须 | 是 | light | 品类英文名称 | ||
| accountId | Long | 必须 | 是 | 188 | 平台id | ||
| applicationId | String | 必须 | 是 | sa23f | 应用id | ||
| pageSize | Integer | 必须 | 是 | 1 | 分页每页页数 | ||
| pageNum | Integer | 必须 | 是 | 50 | 当前页数 |
API出参
| 名称 | 参数类型/SDK类型 | 是否必须 | 文档可见 | 示例值 | 描述 |
|---|---|---|---|---|---|
| retValue | MessageTemplatePageDTO | 是 | 是 | 结果对象 | |
| └ totalCount | Integer | 是 | 是 | ||
| └ pageCount | Integer | 是 | 是 | ||
| └ pageSize | Integer | 是 | 是 | ||
| └ currentPage | Integer | 是 | 是 | ||
| └ msgTemplateInfoList | List |
是 | 是 | ||
| └ id | String | 是 | 是 | 4000279001 | 消息模板id |
| └ templateName | String | 是 | 是 | 布防报警 | 模板名称 |
| └ openTemplateId | String | 是 | 是 | 模板唯一标识 | |
| └ openTemplateVersion | String | 是 | 是 | wqer== | 模板版本号(模板内容有可能进行调整,调整后即为新模板内容,openTemplateId也会变化) |
| retCode | String | 是 | 是 | 0 | 结果码 |
| retMessage | String | 否 | 是 | 错误信息 |
| 常见错误码 | 错误信息 |
|---|---|
| 150001 | Account用户和API使用者不匹配 |
| 150004 | 淘宝用户未注册平台账号 |
| 150006 | 请求ip未被授权 |
| 150102 | 消息模板列表页每页页数参数需在50到100 |
1.3、 消息模板详情接口
API名称
IotApplicationComponent.getMessageTemplate
API入参
| 名称 | 参数类型/SDK类型 | 是否必须 | 文档可见 | 默认值 | 示例值 | 更多限制 | 描述 |
|---|---|---|---|---|---|---|---|
| openTemplateId | String | 必须 | 是 | light | 模板唯一标识 | ||
| accountId | String | 必须 | 是 | 188 | 平台id | ||
| applicationId | String | 必须 | 是 | fa23 | 应用id |
API出参
| 名称 | 参数类型/SDK类型 | 是否必须 | 文档可见 | 示例值 | 描述 |
|---|---|---|---|---|---|
| retValue | MessageTemplateDetailDto | 是 | 是 | 结果对象 | |
| └ appBoxTemplate | AppBoxTemplate | 是 | 是 | 消息模板内容 | |
| └ appMessage | AppMessage | 否 | 是 | APP消息 | |
| └ title | String | 否 | 是 | 标题 | |
| └ content | String | 否 | 是 | 内容 | |
| └ fatigueRule | FatigueRule | 否 | 是 | 疲劳度控制 | |
| └ type | String | 否 | 是 | EXPRESSION:单日允许次数、NUMERIC:间隔时间段允许推送次数 | |
| └ frequency | String | 否 | 是 | 推送次数,当type为EXPRESSION时,一天内允许推送次数;当type为NUMERIC时,间隔时间段允许推送次数 | |
| └ interval | String | 否 | 是 | 当type为NUMERIC时有效,指定时间段「时间段」推送一条 | |
| └ unit_type | String | 否 | 是 | 当type为NUMERIC时有效,指定时间段「单位」推送一条。MILLSECONDS:毫秒,SECONDS:秒,MINUTES:分钟,HOURS:小时,DAY:天 | |
| └ appDeskTemplate | AppDeskTemplate | 否 | 是 | ||
| └ appMessage | AppMessage | 否 | 是 | APP消息 | |
| └ title | String | 否 | 是 | 标题 | |
| └ content | String | 否 | 是 | 内容 | |
| └ fatigueRule | FatigueRule | 否 | 是 | 疲劳度控制 | |
| └ type | String | 否 | 是 | EXPRESSION:单日允许次数、NUMERIC:间隔时间段允许推送次数 | |
| └ frequency | String | 否 | 是 | 推送次数,当type为EXPRESSION时,一天内允许推送次数;当type为NUMERIC时,间隔时间段允许推送次数 | |
| └ interval | String | 否 | 是 | 当type为NUMERIC时有效,指定时间段「时间段」推送一条 | |
| └ unitType | String | 否 | 是 | 当type为NUMERIC时有效,指定时间段「单位」推送一条。MILLSECONDS:毫秒,SECONDS:秒,MINUTES:分钟,HOURS:小时,DAY:天 | |
| └ pushPeriodList | List |
否 | 是 | 允许推送时间 | |
| └ startTime | String | 否 | 是 | 06:00:00 | 允许推送-开始时间 |
| └ endTime | String | 否 | 是 | 14:00:00 | 允许推送-结束时间 |
| └ ttsImmediateTemplate | TtsImmediateTemplate | 否 | 是 | tts消息模板 | |
| └ ttsMessage | String | 否 | 是 | tts内容 | |
| └ fatigueRule | FatigueRule | 否 | 是 | 疲劳度控制 | |
| └ type | String | 否 | 是 | EXPRESSION:单日允许次数、NUMERIC:间隔时间段允许推送次数 | |
| └ frequency | String | 否 | 是 | 推送次数,当type为EXPRESSION时,一天内允许推送次数;当type为NUMERIC时,间隔时间段允许推送次数 | |
| └ interval | String | 否 | 是 | 当type为NUMERIC时有效,指定时间段「时间段」推送一条 | |
| └ unitType | String | 否 | 是 | 当type为NUMERIC时有效,指定时间段「单位」推送一条。MILLSECONDS:毫秒,SECONDS:秒,MINUTES:分钟,HOURS:小时,DAY:天 | |
| └ pushPeriodList | List |
否 | 是 | 允许推送时间 | |
| └ startTime | String | 否 | 是 | 06:00:00 | 允许推送-开始时间 |
| └ endTime | String | 否 | 是 | 14:00:00 | 允许推送-结束时间 |
| retCode | String | 是 | 是 | 0 | 结果码 |
| retMessage | String | 否 | 是 | 错误信息 |
{"result": {"retCode": "200","retValue": {"appBoxTemplate": {"appMessage": {"title": "app消息盒子标题","content": "app消息盒子内容"},"fatigueRule": {"type": "EXPRESSION","frequency": "1","interval": "3","unitType": "SECONDS"}},"appDeskTemplate": {"appMessage": {"title": "APP弹窗标题","content": "APP弹窗标题内容"},"fatigueRule": {"type": "EXPRESSION","frequency": "1","interval": "3","unitType": "SECONDS"},"pushPeriodList": [{"startTime": "06:00:00","endTime": "14:00:00"}]},"ttsImmediateTemplate": {"ttsMessage": "这是tts内容","fatigueRule": {"type": "EXPRESSION","frequency": "1","interval": "3","unitType": "SECONDS"},"pushPeriodList": [{"startTime": "06:00:00","endTime": "14:00:00"}]}},"message": ""}}
| 常见错误码 | 错误信息 |
|---|---|
| 150001 | Account用户和API使用者不匹配 |
| 150004 | 淘宝用户未注册平台账号 |
| 150006 | 请求ip未被授权 |
| 150104 | 消息模板id非法 |
| 150101 | 消息模板功能不可用 |
1.4、 发送消息接口
该发送消息接口为基于模板发送消息,收到一次设备上报数据,对应允许发送一次消息,否则发送失效。
API名称
IotApplicationComponent.sendMessageByTemplateId
API入参
| 名称 | 参数类型/SDK类型 | 是否必须 | 文档可见 | 默认值 | 示例值 | 更多限制 | 描述 |
|---|---|---|---|---|---|---|---|
| openTemplateId | String | 必须 | 是 | light | 模板唯一标识 | ||
| openUserId | String | 必须 | 是 | wqer== | 开放用户id | ||
| accountId | String | 必须 | 是 | 188 | 平台id | ||
| deviceId | String | 必须 | 是 | 设备id | |||
| applicationId | String | 必须 | 是 | 应用id | |||
| productId | String | 否 | 是 | 产品pid | |||
| productKey | String | 必须 | 是 | 产品pk | |||
| params | Map |
否 | 是 | 发送模板需要的参数 | |||
| time | Long | 必须 | 是 | 设备上报时附带的时间戳 | |||
| messageId | String | 必须 | 是 | 平台消息分发时消息id |
API出参
| 名称 | 参数类型/SDK类型 | 是否必须 | 文档可见 | 示例值 | 描述 |
|---|---|---|---|---|---|
| retValue | Boolean | 是 | 是 | 是否发送成功 | |
| retCode | String | 是 | 是 | 0 | 结果码 |
| retMessage | String | 否 | 是 | 错误信息 |
| 常见错误码 | 错误信息 |
|---|---|
| 150001 | Account用户和API使用者不匹配 |
| 150004 | 淘宝用户未注册平台账号 |
| 150006 | 请求ip未被授权 |
| 150100 | 消息未在规定时间段内发送或上报消息已被消费请勿重试 |
| 150103 | 消息入参productId无效 |
| 508012 | 产品暂不支持发送 |
| 508013 | 暂不支持发送该用户 |
| 508015 | 模板不匹配,请使用正确的模板推送消息 |
2、食谱服务
食谱服务是平台提供智能食谱服务,云端录入食谱内容,并支持将预设好的烹饪指令自动下发到设备端执行的官方服务。
2.1、 平台录入食谱内容
添加食谱集
添加食谱(内容)
食谱(内容)编辑

2.2、 产品物模型支持
对接食谱的IoT产品对物模型属性有一定要求,具体参见文档(第2点 补充文档一列):https://www.aligenie.com/doc/357554/gc2pco
2.3、 协议对接
蓝牙协议文档:https://www.aligenie.com/doc/357554/kw56sz
WIFI协议文档:https://www.aligenie.com/doc/357554/mltmvr
2.4、 食谱H5页面调用
接口文档参见:https://www.aligenie.com/doc/357554/xem5m5
2.5、 食谱Api接口
如果ISV需要以接口形式对食谱进行操作,可参考文档 https://www.aligenie.com/doc/357554/xkpsvo#OOaH7 进行操作。
2.6、 附录
食谱支持品类 https://www.aligenie.com/doc/357554/hiku59
食谱支持标签 https://www.aligenie.com/doc/357554/xum3re

