提供一组消息记录的操作服务接口,客户端应用通过本组服务接口可以实现对推送到用户客户端的消息记录的查询、统计和删除等操作。

消息接收 消息查询、删除、更新 消息接收设置

绑定push通道

定义描述

path 版本 描述 是否需要用户身份的鉴权
/uc/bindPushChannel 1.0.2 绑定push通道 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
deviceId String push通道的deviceId(消息推送SDK初始化时,根据utdid生成)
deviceType String 设备类型:iOS或Android

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "request": {
            "iotToken": "109049c80xxxxxxxx6f62e29a3ba",
            "apiVer": "1.0.2"
        },
        "id": 1508212818676,
        "params": {
            "deviceId":"xxxx",
            "deviceType":"iOS"
        },
        "version": "1.0"
    }           
  • 正常返回示例
    {
        "code": 200,
        "id":"bb179e80-39fd-xxxx-xxxx-48ca87a3f5c5"
    }         
  • 异常返回示例
    {{
     "code":2062,
     "id":"4fa207ca-fffd-xxxx-xxxx-e6f7ca6c99c3",
     "localizedMsg":"请求错误",
     "message":"identityId not exist"
    }

解绑push通道

定义描述

path 版本 描述 是否需要用户身份的鉴权
/uc/unbindPushChannel 1.0.2 绑定push通道 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
deviceId String push通道的deviceId

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "request": {
            "iotToken": "109049c80xxxxxxxx5f6f62e29a3ba",
            "apiVer": "1.0.2"
        },
        "id": 1508212818676,
        "params": {
            "deviceId":"xxxx"
        },
        "version": "1.0"
    }
    					
  • 正常返回示例
    {
        "code": 200,
        "id":"bb179e80-39fd-xxxx-xxxx-48ca87a3f5c5"
    }
  • 异常返回示例
    {
     "code":2062,
     "id":"4fa207ca-fffd-xxxx-xxxx-e6f7ca6c99c3",
     "localizedMsg":"请求错误",
     "message":"identityId not exist"
    }
    					

统计用户的消息记录数量

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/record/messagetype/count 1.0.6 统计当前用户的消息记录数量 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

字段名 子键 类型 是否必填 备注
requestDTO JSON
startCreateTime Date 查询开始时间
endCreateTime Date 查询结束时间
messageType String 消息类型,取值为device表示设备;announcement表示通知;share表示分享。如果该参数为空,则查询所有类型的数据
type String 推送类型
  • NOTICE:弹窗通知消息,推荐
  • MESSAGE:非弹窗类型消息,如透传消息
maxId Long 查询条件:id <maxId
minId Long 查询条件:id >minId
isRead Integer 0: 未读 1:已读
eventId String 告警事件ID(由拉取设备对应的告警配置列表接口可以获得)
iotId String 设备ID
说明 MESSAGE类型的消息只可以通过接口查询到;而NOTICE类型的消息,除了可以提供接口查询,还会主动通过手机的推送通道Push给用户(前提是用户App中使用了飞燕提供的消息推送的SDK)。

返回参数

字段名 类型 描述
share Integer 分享消息数量
device Integer 设备消息数
announcement Integer 通知消息数

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.1",
            "iotToken": "token"
        },
        "params": {
            "requestDTO": {
                "type": "NOTICE"
            }
        }
    }
    					
  • 正常返回示例
    {
        "code": 200,
        "data": {
            "share": 6,
            "device": 0,
            "announcement": 0
        },
        "message": "success"
    }
    					

查询用户的消息记录(推荐)

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/push/record/query 1.0.1 查询当前用户的消息记录 是,客户端SDK需启用身份的鉴权,进行身份认证
说明 新增查询用户的消息记录接口兼容原有的查询消息记录的逻辑,并支持附带的业务参数,推荐您使用该接口。

请求参数

字段名 子键 类型 是否必填 备注
requestDTO JSON 查询当前用户消息的请求信息列表
startCreateTime Long 查询的开始时间,单位毫秒
endCreateTime Date 查询的结束时间,单位毫秒
messageType String 消息类型,取值为device表示设备;announcement表示通知;share表示分享。如果该参数为空,则查询所有类型的数据
type String 推送类型
  • NOTICE:弹窗通知消息,推荐
  • MESSAGE:非弹窗类型消息,如透传消息
maxId Long 查询条件:id <maxId
minId Long 查询条件:id >minId
pageNo Integer 分页页数,从1开始
pageSize Integer 分页大小,最大100
isRead Integer 0:未读; 1:已读
sortType Integer
  • null或0:gmtCreate倒排
  • 1:gmtCreate正排
iotId String 设备ID,生活物联网平台为设备颁发的ID,设备的唯一标识符。
gatewayId String 网关ID,用于过滤网关及网关下所有子设备的消息记录

返回参数

参数 子参数 二级子参数 类型 描述
total Long 返回的消息记录的总条数
pageNo Integer 返回的消息记录所在的当前页
pageSize Integer 返回消息记录的分页大小
data JSON Array 返回的消息记录的详细信息
id Long 消息id
gmtCreate Long 创建时间,单位毫秒
gmtModified Date 修改时间,单位毫秒
appKey Long 应用的appKey
title String 消息记录的标题
body String 消息内容
messageType String 消息类型,取值为device表示设备;announcement表示通知;share表示分享。如果该参数为空,则查询所有类型的数据
isRead Integer 阅读状态, 0:未读; 1:已读
extData JSON 附加信息
iotId String 设备id
productKey String 产品key
productName String 产品名称
icon String 图标
extParam String 业务附加信息

示例

  • 请求示例
    {
        "id": "1509086454180", 
        "version": "1.0", 
        "request": {
            "apiVer": "1.0.1", 
            "iotToken": "token"
        }, 
        "params": {
            "requestDTO": {
                "type": "NOTICE", 
                "pageNo": 1, 
                "pageSize": 20
            }
        }
    }
  • 正常返回示例
    {
        "code": 200, 
        "data": {
            "total": 1, 
            "pageNo": 1, 
            "pageSize": 20, 
            "data": [
                {
                    "appKey": 1234567, 
                    "body": "温度高", 
                    "extData": {
                        "categoryId": 100, 
                        "iotId": "iotId1", 
                        "productKey": "xxxxxx", 
                        "productName": "xxxxxx", 
                        "extParam": ""
                    }, 
                    "gmtCreate": 1525351832000, 
                    "gmtModified": 1525351851000, 
                    "id": 1000000000000200400, 
                    "isRead": 1, 
                    "messageId": "-1", 
                    "messageType": "device", 
                    "title": "测试", 
                    "type": "NOTICE"
                }
            ]
        }, 
        "message": "success"
    }

查询用户的消息记录(历史接口,不推荐使用)

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/record/query 1.0.6 查询当前用户的消息记录 是,客户端SDK需启用身份的鉴权,进行身份认证
说明 平台已新增查询用户的消息记录接口/message/center/push/record/query,新接口可以兼容原有的查询消息记录的逻辑,并支持附带的业务参数,推荐您切换至新接口。

请求参数

字段名 子键 类型 是否必填 备注
requestDTO JSON
startCreateTime Long N 查询的开始时间,单位毫秒
endCreateTime Date N 查询的结束时间,单位毫秒
messageType String N 消息类型分为设备(device)、通知(announcement)、分享(share),如果三个类型都不指定(该参数为空),则查询返回所有的数据
type String Y
  • MESSAGE:透传消息
  • NOTICE:通知消息
maxId Long N 查询条件:id <maxId
minId Long N 查询条件:id >minId
pageNo Integer Y 分页页数,从1开始
pageSize Integer Y 分页大小,最大100
isRead Integer N 0:未读; 1:已读
sortType Integer N null or 0: gmtCreate倒排 1: gmtCreate正排
iotId String N 设备id:从 1.0.6起开放

返回参数

子键 二级子键 三级子键 四级子键 类型 描述
JSON
count Long 总数
data JSON List
id Long 消息id
gmtCreate Long 创建时间
gmtModified Date 修改时间
appKey Long
title String
body String
messageType String 消息类型:设备、共享、通知
isRead Integer 阅读状态, 0:未读; 1:已读
extData JSON 附加信息
device JSON 设备信息
iotId String 设备id
productKey String 产品key
productName String 产品名称
icon String 图标
nickName String 昵称

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.1",
            "iotToken": "token"
        },
        "params": {
            "requestDTO": {
                "type": "NOTICE",
                "pageNo": 1,
                "pageSize": 20
            }
        }
    }
    					
  • 正常返回示例
    {
        "code": 200,
        "data": {
            "count": 102,
            "data": [{
                "appKey": 1234567,
                "body": "温度高",
                "extData": {
                    "device": {
                        "categoryId": 100,
                        "iotId": "iotId1",
                        "productKey": "p1",
                        "productName": "1"
                    }
                },
                "gmtCreate": 1525351832000,
                "gmtModified": 1525351851000,
                "id": 1000000000000200439,
                "isRead": 1,
                "messageId": "-1",
                "messageType": "device",
                "title": "测试",
                "type": "NOTICE"
            }]
        },
        "message": "success"
    }
    					

逻辑删除用户的消息记录

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/record/delete 1.0.6 逻辑删除当前用户的消息记录 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

字段名 子键 类型 是否必填 备注
requestDTO JSON
type String 推送类型
  • NOTICE:弹窗通知消息,推荐
  • MESSAGE:非弹窗类型消息,如透传消息
messageType String 消息类型,取值为device表示设备;announcement表示通知;share表示分享。如果该参数为空,则查询所有类型的数据
id Long 消息记录id
maxId Long 删除条件:id < maxId
minId Long 删除条件:id > minId
说明 messageType、id、maxId、minId四个参数不能同时为空(即至少要配置其中一个)。

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.1",
            "iotToken": "token"
        },
        "params": {
            "requestDTO": {
                "type": "NOTICE"
            }
        }
    }
  • 正常返回示例
    {
        "code": 200,
        "data": 10,
        "message": "success"
    }

物理删除用户的消息记录

定义描述

path 版本 描述 是否需要用户的身份鉴权
/message/center/record/delete/physical 1.0.6 物理删除当前用户的消息记录 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

字段名 子键 类型 是否必填 备注
requestDTO JSON
type String 推送类型
  • NOTICE:弹窗通知消息,推荐
  • MESSAGE:非弹窗类型消息,如透传消息
messageType String 消息类型,取值为device表示设备;announcement表示通知;share表示分享。如果该参数为空,则查询所有类型的数据
id Long 消息记录id
maxId Long 删除条件:id < maxId
minId Long 删除条件:id > minId

返回参数

字段名 类型 描述
data Integer 删除的记录数量

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.1",
            "iotToken": "token"
        },
        "params": {
            "requestDTO": {
                "type": "NOTICE"
            }
        }
    }
  • 正常返回示例
    {
        "code": 200,
        "data": 10,
        "message": "success"
    }

更新用户的消息记录

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/record/modify 1.0.6 更新当前用户的消息记录,目前仅支持更新只读状态 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

字段名 子键 类型 是否必填 备注
requestDTO JSON
id Long 消息记录id
type String 推送类型
  • NOTICE:弹窗通知消息,推荐
  • MESSAGE:非弹窗类型消息,如透传消息
messageType String 消息类型,取值为device表示设备;announcement表示通知;share表示分享。如果该参数为空,则查询所有类型的数据
maxId Long 查询条件:id <maxId
minId Long 查询条件:id >minId
i​sRead I​nteger 需要​更新的阅读状态, 0​:未读; 1:已读

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.1",
            "iotToken": "token"
        },
        "params": {
            "requestDTO": {
                "type": "NOTICE"
            }
        }
    }
  • 正常返回示例
    {
        "code": 200,
        "data": 5,
        "message": "success"
    }

设备所有者设置共享设备的告警提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/device/notice/sharing/config/set 1.0.0 设备所有者设置共享设备的告警提醒配置 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
iotId String 设备ID
targetId String 被分享者身份ID
eventId String 告警事件ID
noticeEnabled Boolean 消息推送提醒开关, true表示开启; false表示关闭

返回参数

无业务返回参数

示例

  • 请求示例
    {
      "id": "1509086454180",
      "version": "1.0",
      "request": {
        "apiVer": "1.0.0",
        "iotToken": "token"
      },
      "params": {
        "iotId" : "ChFrkX2xxxx0803d10",
        "targetId":"xxxx",
        "eventId" : "18012",
        "noticeEnabled" : false
      }
    }
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": null
    }

拉取指定用户的共享设备的告警消息开关配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/device/notice/sharing/config/list 1.0.0 拉取指定设备对应的告警提醒配置列表,只有设备所有者才能使用这个接口,且只有配置为进行App应用推送的告警信息才会被获取到配置列表 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
iotId String 设备ID
identityId String 被分享者的统一身份ID

返回参数

参数 类型 必有 描述
alarmNotices List 告警提醒配置列表
表 1. 参数alarmNotices列表结构
参数 类型 必填 描述
eventId String 告警事件ID
eventName String 告警事件名称
noticeEnabled Boolean 消息推送提醒开关

true:开启

false: 关闭

如果用户之前从未配置过告警提醒配置,则默认返回true

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.0",
          "iotToken": "token"
        },
        "params": {
            "iotId" : "ChFrkX2xxxx010803d10",
          "identityId": "xxxx"
        }
    }
    					
  • 正常返回示例
    {
        "code": 200,
        "message": "",
        "data": [
           {
               "eventId" : "18012",
               "eventName": "开门提醒",
               "noticeEnabled" : true
           },
           {
               "eventId" : "18013",
               "eventName": "劫持报警",
               "noticeEnabled" : false
           }
        ]
    }

拉取设备对应的告警配置列表

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/device/notice/list 1.0.5 拉取指定设备对应的告警提醒配置列表(只有配置为进行app应用推送的告警信息才会被获取到) 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
iotId String 设备ID

返回参数

参数 类型 必有 描述
alarmNotices List 告警提醒配置列表

alarmNotices

参数 类型 必填 描述
eventId String 告警事件ID
eventName String 告警事件名称
noticeEnabled Boolean 消息推送提醒开关

true:开启

false: 关闭

如果用户之前从未配置过告警提醒配置,则默认返回true

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
            "iotId" : "ChFrkX2CExxxxxxxxH0010803d10"
        }
    }  
  • 正常返回示例
    {
        "code": 200,
        "message": "",
        "data": [
           {
               "eventId" : "18012",
               "eventName": "开门提醒",
               "noticeEnabled" : true
           },
           {
               "eventId" : "18013",
               "eventName": "劫持报警",
               "noticeEnabled" : false
           }
        ]
    }

设置设备告警提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/device/notice/set 1.0.5 配置指定设备的某个告警提醒的开关。无论当前登录用户是设备管理员还是非管理员,该接口仅对用户自身生效 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
iotId String 设备ID
eventId String 告警事件ID
noticeEnabled Boolean 消息推送提醒开关

true:开启

false: 关闭

如果用户之前从未配置过告警提醒配置,则默认返回true

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
            "iotId" : "ChFrkX2Cxxxxxxxx10803d10",
            "eventId" : "18012",
            "noticeEnabled" : false
        }
    }
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": null
    }

设置设备全量告警的提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/device/global/notice/set 1.0.7 设置指定设备上的所有告警提醒条目的状态。 例如,一个设备上共有10条告警提醒,调用本接口传入true或false,则所有的10条告警提醒都会被设置为true或false。

该设置不包括以后新增的告警,即在此处设置了false后,又新增了一条告警,则对应的提醒默认仍为true

是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
iotId String 设备ID
noticeMode String 消息推送提醒模式

NONE:关闭

MESSAGE: 仅能查询消息,不会推送消息弹窗

MESSAGE_AND_NOTICE: 既能查询消息, 也会推送消息弹窗

如果用户之前从未配置过告警提醒配置,则默认为 MESSAGE_AND_NOTICE

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
            "iotId" : "ChFrkX2Cxxxxxxxx03d10",
            "noticeMode" : "MESSAGE_AND_NOTICE"
        }
    }          
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": null
    }

获取设备全量告警的提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/message/center/device/global/notice/get 1.0.7 获取设备告警全局提醒配置 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
iotId String 设备ID

返回参数

参数 类型 必有 描述
data String 消息推送提醒模式

NONE:关闭

MESSAGE: 仅能查询消息,不会推送消息弹窗

MESSAGE_AND_NOTICE: 既能查询消息, 也会推送消息弹窗

如果用户之前从未配置过告警提醒配置,则默认为 MESSAGE_AND_NOTICE

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
            "iotId" : "ChFrkX2Cxxxxxxxx03d10"
        }
    }          
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": "MESSAGE_AND_NOTICE"
    }

设置用户维度的设备告警提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/living/message/device/notice/user/config/set 1.0.0 设置用户维度的设备告警提醒配置。设置后将对用户下所有设备的告警提醒生效。 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
noticeMode String 消息推送提醒模式

NONE:关闭

MESSAGE: 仅能查询消息,不会推送消息弹窗

MESSAGE_AND_NOTICE: 既能查询消息, 也会推送消息弹窗

如果用户之前从未配置过告警提醒配置,则默认为 MESSAGE_AND_NOTICE

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
            "noticeMode" : "MESSAGE_AND_NOTICE"
        }
    }          
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": null
    }

获取用户维度的设备告警的提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/living/message/device/notice/user/config/get 1.0.0 获取用户维度的设备告警提醒配置 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

无业务请求参数

返回参数

参数 类型 必有 描述
data String 消息推送提醒模式

NONE:关闭

MESSAGE: 仅能查询消息,不会推送消息弹窗

MESSAGE_AND_NOTICE: 既能查询消息, 也会推送消息弹窗

如果用户之前从未配置过告警提醒配置,则默认为 MESSAGE_AND_NOTICE

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
        }
    }          
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": "MESSAGE_AND_NOTICE"
    }

设置共享设备全量告警的提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/living/device/global/notice/sharing/config/set 1.0.0 设备所有者设置共享设备的告警提醒配置。 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
targetIdentityId String 被分享者的统一身份ID
iotId String 设备ID
noticeMode String 消息推送提醒模式

NONE:关闭

MESSAGE: 仅能查询消息,不会推送消息弹窗

MESSAGE_AND_NOTICE: 既能查询消息, 也会推送消息弹窗

如果用户之前从未配置过告警提醒配置,则默认为 MESSAGE_AND_NOTICE

返回参数

无业务返回参数

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
            "targetIdentityId": "xxx",
            "iotId" : "ChFrkX2Cxxxxxxxx03d10",
            "noticeMode" : "MESSAGE_AND_NOTICE"
        }
    }          
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": null
    }

获取共享设备全量告警的提醒配置

定义描述

path 版本 描述 是否需要用户身份的鉴权
/living/device/global/notice/sharing/config/get 1.0.0 获取共享设备告警全局提醒配置 是,客户端SDK需启用身份的鉴权,进行身份认证

请求参数

参数 类型 必填 描述
targetIdentityId String 被分享者的统一身份ID
iotId String 设备ID

返回参数

参数 类型 必有 描述
data String 消息推送提醒模式

NONE:关闭

MESSAGE: 仅能查询消息,不会推送消息弹窗

MESSAGE_AND_NOTICE: 既能查询消息, 也会推送消息弹窗

如果用户之前从未配置过告警提醒配置,则默认为 MESSAGE_AND_NOTICE

示例

  • 请求示例
    {
        "id": "1509086454180",
        "version": "1.0",
        "request": {
            "apiVer": "1.0.5",
          "iotToken": "token"
        },
        "params": {
            "targetIdentityId": "xxx",
            "iotId" : "ChFrkX2Cxxxxxxxx03d10"
        }
    }          
  • 正常返回示例
    {
        "code": 200,
        "message": "success",
        "data": "MESSAGE_AND_NOTICE"
    }