官方服务是由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类型是否必须文档可见默认值示例值更多限制描述
devTypeString必须light品类英文名称
accountIdLong必须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<MessageTemplateInfo>



    └ idString4000279001消息模板id
    └ templateNameString

布防报警

模板名称
    └ openTemplateId String


模板唯一标识

     └ openTemplateVersion  

String

wqer==模板版本号(模板内容有可能进行调整,调整后即为新模板内容,

openTemplateId

也会变化)
retCodeString

0结果码
retMessageString错误信息


常见错误码

错误信息

150001

Account用户和API使用者不匹配

150004

淘宝用户未注册平台账号

150006

请求ip未被授权

150102

消息模板列表页每页页数参数需在50到100




1.3、 消息模板详情接口

API名称

IotApplicationComponent.getMessageTemplate



API入参


名称参数类型/SDK类型是否必须文档可见默认值示例值更多限制描述

openTemplateId

String必须light

模板唯一标识

accountIdString必须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<PushPeriod>


允许推送时间

        └ 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<PushPeriod>


允许推送时间

        └ startTime

String

06:00:00

允许推送-开始时间

        └ endTime

String

14:00:00

允许推送-结束时间

retCodeString

0结果码
retMessageString错误信息


{
  "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

模板唯一标识

openUserIdString必须wqer==开放用户id
accountIdString必须188平台id

deviceId

String

必须




设备id

applicationId

String

必须




应用id

productId

String




产品pid

productKey

String

必须




产品pk

params

Map<String,String>




发送模板需要的参数

time

Long

必须




设备上报时附带的时间戳

messageId

String

必须




平台消息分发时消息id


API出参

名称参数类型/SDK类型是否必须文档可见示例值描述
retValueBoolean是否发送成功
retCodeString

0结果码
retMessageString错误信息


常见错误码

错误信息

150001

Account用户和API使用者不匹配

150004

淘宝用户未注册平台账号

150006

请求ip未被授权

150100

消息未在规定时间段内发送或上报消息已被消费请勿重试

150103

消息入参productId无效

508012

产品暂不支持发送

508013

暂不支持发送该用户

508015

模板不匹配,请使用正确的模板推送消息





2、食谱服务

食谱服务是平台提供智能食谱服务,云端录入食谱内容,并支持将预设好的烹饪指令自动下发到设备端执行的官方服务。


2.1、 平台录入食谱内容

添加食谱集

image.png

添加食谱(内容)

image.png

食谱(内容)编辑

image.png

image.png


录入食谱步骤

image.png

image.png

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