Notice Message Produce


创建并发送待办消息,消息将出现在终端用户界面的消息弹窗中。使用本接口前,需注意:

  • 如果消息 ID 在 OU 内已存在,则仅发送消息;如果不存在,则新建并发送消息。

  • 支持同时创建或发送多条消息,一次最多可发送 100 条消息。但若任一条失败,则全部失败。

  • 发送已有消息时,无法通过本接口修改已有消息的内容。

  • 若指定的用户 ID 中,部分用户不存在或不在 OU 内,将自动滤除且不报错,继续向剩余用户发送消息。

前提条件


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

请求格式


POST https://{apigw-address}/app-portal/api/v3/notice-message/produce

请求参数(URI)


名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

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

请求参数(Body)


名称

必需/可选

数据类型

描述

messages

必需

MessageProduceDTO 结构体

消息列表。支持同时创建或发送多条消息,一次最多可发送 100 条消息。但若任一条失败,则全部失败。MessageProduceDTO 结构体 >>

MessageProduceDTO 结构体


注意:

  • appName, features, body, header, 和 tag 需以国际化结构体格式提供,参见 国际化名称结构体。

  • 若 targets 中的用户 ID 不存在或不在指定 OU 中,将自动滤除且不报错,继续向剩余用户发送消息。

  • 发送已有消息时,无法修改已有消息的内容或二次推送给已发送的用户,也无法通过本接口撤回消息。


名称

必需/可选

数据类型

描述

messageId

必需

String

消息 ID。若消息 ID 在 OU 内已存在,将仅发送该消息,以下参数中对消息内容的变更无效。若消息 ID 不存在,将新建并发送该消息。

messageType

可选

Number

消息类型。如需新建并发送消息,即 messageId 不存在时必填,仅支持赋值 1,表示待办消息。若仅需发送已有消息,赋值无效。

appId

可选

String

消息关联的应用 accessKey。若应用为外部应用,必须留空。若仅需发送已有消息,赋值无效。

appName

可选

Object

外部应用名称,当关联应用为外部应用时必须填写,此时 appId 为空。应用名称将展示在消息弹窗中。需以国际化结构体形式赋值,且至少指定 default 或 en_US 其中一项内容。参见 国际化名称结构体。若仅需发送已有消息,赋值无效。

注意:如需将多条消息关联同一个外部应用,必须确保 appName 的国际化结构体完全一致。

url

可选

String

消息随附链接,可用于指定外部链接。终端用户在弹窗中点击消息标题即可跳转至 URL。若同时通过 linkedAppId、linkedMenuCode 和 linkedStates 指定了链接,将仅展示当前参数赋值的链接。若仅需发送已有消息,赋值无效。

linkedAppId

可选

String

与消息关联的应用 ID。linkedAppId 将与 linkedMenuCode 和 linkedStates 一起构成跳转链接 URL,可用于指定应用门户内部链接。终端用户在弹窗中点击消息标题即可跳转至 URL。若同时在 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 将与 linkedAppId 和 linkedStates 一起构成跳转链接 URL,详情见 linkedAppId 参数的描述。你可以通过 Get Application Information API 获取应用内的菜单 ID。若仅需发送已有消息,赋值无效。

linkedStates

可选

String

URL 中的其它自定义参数。linkedStates 将与 linkedAppId 和 linkedMenuCode 一起构成跳转链接 URL,详情见 linkedAppId 参数的描述。若仅需发送已有消息,赋值无效。

features

可选

Object

链接的多语言描述,展示在弹窗内作为链接的补充说明。如需展示描述,至少指定 default 或 en_US 其中一项内容,结构见 国际化名称结构体。若仅需发送已有消息,赋值无效。

body

可选

Object

消息的多语言内容。如需指定,至少指定 default 或 en_US 其中一项内容,结构见 国际化名称结构体。若仅需发送已有消息,赋值无效。

Header

可选

Object

消息的多语言标题。如需指定,至少指定 default 或 en_US 其中一项内容,结构见 国际化名称结构体。若仅需发送已有消息,赋值无效。

tag

可选

List

展示的消息标签,支持多语言。如需指定,至少指定 default 或 en_US 其中一项内容,结构见 国际化名称结构体。若仅需发送已有消息,赋值无效。

targetType

可选

Map

消息发送对象的目标类型。若需新建并发送消息,必须指定该参数。支持以下赋值:

  • 0:OU 内全体用户。

  • 1:指定用户。

若仅需发送已有消息,赋值无效。

targets

可选

List

消息发送的用户 ID 列表。当 targetType 赋值为 1 时必填,当 targetType 赋值为 0 时赋值无效。用户 ID 无效、已接收过该消息的用户,或不属于当前 OU 的用户将被自动滤除,剩余用户将继续发送。

响应参数


名称

数据类型

描述

data

Boolean

消息是否发送成功。true 表示发送成功,false 表示发送失败。

示例

请求示例


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

method: POST

requestBody:
{
  "messages": [
    {
      "messageId": "yourMessageId",
      "messageType": 1,
      "url": "http://xxx.com",
      "targetType": 1,
      "targets": ["u123", "u456"],
      "appId": "yourAppAccessKey",
      "appName": {
        "defaultValue": "appName",
        "i18nValue": {"zh_CN": "appNameZh", "en_US": "appNameEn"}
      },
      "header": {
        "defaultValue": "header",
        "i18nValue": {"zh_CN": "headerZh", "en_US": "headerEn"}
      },
      "body": {
        "defaultValue": "body",
        "i18nValue": {"zh_CN": "bodyZh", "en_US": "bodyEn"}
      },
      "tags": [
        {
          "defaultValue": "tag1",
          "i18nValue": {"zh_CN": "tag1Zh", "en_US": "tag1En"}
        },
        {
          "defaultValue": "tag2",
          "i18nValue": {"zh_CN": "tag2Zh", "en_US": "tag2En"}
        }
      ],
      "features": [
        {
          "defaultValue": "feature1",
          "i18nValue": {"zh_CN": "feature1Zh", "en_US": "feature1En"}
        },
        {
          "defaultValue": "feature2",
          "i18nValue": {"zh_CN": "feature2Zh", "en_US": "feature2En"}
        }
      ]
    }
  ]
}

返回示例

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