Create Message


创建应用门户上的消息。消息将出现在终端界面的右上角消息中心弹窗内。

前提条件


  • OU 已获取当前应用,或该应用为 OU 内自建应用。

  • 若此条消息与资产相关联,则该资产或资产的父节点需带有 auth_unit:true 的标签。如有需要,可通过 Update Asset API 为资产添加标签。

请求格式


POST https://{apigw-address}/app-portal-service/v2.2/message/produce

请求参数(Body)


名称

必需/可选

数据类型

描述

messages

必需

MessageProduceDTO 结构体

创建的消息。MessageProduceDTO 结构体 >>

MessageProduceDTO 结构体


名称

必需/可选

数据类型

描述

messageId

必需

String

消息 ID。

type

必需

Integer

消息类型。支持以下赋值:

  • 0:普通消息。

  • 1:告警消息。

orgId

必需

String

OU ID。如何获取 orgId 信息 >>

accessKey

必需

String

应用的 accessKey,用于鉴权,以获得应用有权访问的数据。如何获取 accessKey 信息 >>

body

可选

I18nString

多语言显示的消息内容。如需指定,至少指定 defaulten_US 其中一项内容。结构见 国际化名称结构体 >>

color

可选

Integer

消息严重级别颜色 ID。你可以通过 Get Colors of the Message Icon API 获取 OU 内可用的消息图标颜色列表。

ring

可选

Integer

消息的提示音 ID。你可以通过 Get Message Ringtones API 获取 OU 内可用的消息提示音列表。

tags

可选

Map

展示的消息标签,仅在页面弹窗中展示前 3 个,支持多语言。如需展示标签,至少指定 defaulten_US 其中一项内容。结构见 国际化名称结构体 >>

produceTime

必需

String

消息生成时间,格式为“yyyy-MM-dd HH:mm:ss”。

zoneOffset

必需

String

时区,UTC 格式,如”+08:00”。

linkedAppId

可选

String

与消息关联的应用 ID。linkedAppId 将与 linkedMenuCodelinkedStates 一起构成跳转链接 URL,终端用户在弹窗中点击消息即可跳转至 URL。例如:https://{app-service-address}/portal/abc-123-xyz/alarmProcessing?state=site%abc123,其中,“{app-service-address}” 是环境域名,“abc-123-xyz”为 linkedAppId,“alarmProcessing”为 linkedMenuCode,“site%abc123”为 linkedStates

linkedMenuCode

可选

String

与消息关联的应用内的菜单 ID。linkedMenuCode 将与 linkedAppIdlinkedStates 一起构成跳转链接 URL,详情见 linkedAppId 参数的描述。你可以通过 Get Application Information API 获取应用内的菜单 ID。

linkedStates

可选

String

URL 中的其它自定义参数。linkedStates 将与 linkedAppIdlinkedMenuCode 一起构成跳转链接 URL,详情见 linkedAppId 参数的描述。

feature

可选

I18nString

自定义描述,将展示在消息弹窗中,支持多语言。如需展示描述,至少指定 defaulten_US 其中一项内容。结构见 国际化名称结构体 >>

assetId

可选

String

与消息相关的资产 ID。

authUnitId

必需

String

用于验证应用是否有权访问某资产及其子资产的权限。需提供资产 ID,支持具体设备的资产 ID,或该设备的父节点 ID,例如设备所属的电站或工厂的 ID。ID 相关的资产需在资产树中标记有“auth_unit:true”的标签。例如,某一应用有权访问光伏电站,可指定光伏电站的资产 ID 为 authUnitId,用户访问该应用时,将可查看光伏电站及其子节点的所有资产数据以及告警消息。

callbackUrl

可选

String

用户在消息弹窗中点击消息弹窗中的自定义按钮后,系统向指定的 URL 发起一个 GET 请求,通知服务器用户点击了消息按钮。同时支持未编码和已编码的 URL:

  • 未编码:https://{app-service-address}/callback?appId=yourAppAccessKey&messageId=messagett0q22w1299

  • 已编码:https%3a%2f%2f%7bapp-service-address%7d%2fcallback%3fappId%3daccessKey%26messageId%3dmessagett0q22w1299+

其中 {app-service-address} 为能够接受并处理回调请求的服务器地址。

actionName

可选

I18nString

消息弹窗中自定义按钮的名称,支持多语言展示。建议中文 2 个字符,英文 3 个字符,如“确认”和“ACK”。如不提供则不展示按钮,如需展示按钮,必须至少指定 defaulten_US 其中一项内容。结构见 国际化名称结构体 >>

actionPermissionCode

可选

String

权限点标识符,可通过权限点限制按钮的操作权限。当对此消息可见的用户具有此权限点时,可在消息弹框中可以查看和点击按钮,否则页面将不展示按钮。如果不提供此参数,默认所有对此消息可见的用户可以看到自定义按钮。

响应参数


名称

数据类型

描述

data

Boolean

消息是否创建成功。true 表示创建成功,false 表示创建失败。

示例

请求示例


url: https://{apigw-address}/app-portal-service/v2.2/message/produce?orgId=your_org_id

method: POST

requestBody:
{
  "messages": [
    {
      "zoneOffset": "+08:00",
      "linkedMenuCode": "menucode",
      "linkedAppId": "yourAppId",
      "color": 1,
      "ring": 1,
      "messageId": "your_message_id",
      "produceTime": "2022-07-24 11:22:01",
      "body": {
        "default": "your_message",
        "en_US": "your_message_en",
        "zh_CN": "your_message_zh",
        "ja_JP": "",
        "es_ES": ""
      },
      "type": 1,
      "tags": [
        {
          "default": "Severe",
          "en_US": "Severe",
          "zh_CN": "严重",
          "ja_JP": "",
          "es_ES": ""
        },
        {
          "default": "Performance Alarm",
          "en_US": "Performance Alarm",
          "zh_CN": "性能告警",
          "ja_JP": "",
          "es_ES": ""
        },
        {
          "default": "Inverter",
          "en_US": "Inverter",
          "zh_CN": "逆变器",
          "ja_JP": "",
          "es_ES": ""
        }
      ],
      "orgId": "your_org_id",
      "authUnitId": "your_auth_unit_id",
      "feature": {
        "default": "your_message",
        "en_US": "your_message_en",
        "zh_CN": "your_message_zh",
        "ja_JP": "",
        "es_ES": ""
      },
      "assetId": "your_asset_id",
      "accessKey": "your_access_key",
      "linkedStates": "states",
      "callbackUrl":"https://{app-service-address}/app-portal/test/v1/callback?appId=yourAccessKey&messageId=messagett0q22w1299",
      "actionName":
        {
         "en_US":"ACK",
         "zh_CN":"确认",
         "ja_JP": "",
         "es_ES": ""
        }
    }
  ]
}

返回示例

{
  "code": 0,
  "message": "",
  "data": true
}