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 为空。应用名称将展示在消息弹窗中。需以国际化结构体形式赋值,且至少指定 defaulten_US 其中一项内容。参见 国际化名称结构体。若仅需发送已有消息,赋值无效。

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

url

可选

String

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

linkedAppId

可选

String

与消息关联的应用 ID。linkedAppId 将与 linkedMenuCodelinkedStates 一起构成跳转链接 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 将与 linkedAppIdlinkedStates 一起构成跳转链接 URL,详情见 linkedAppId 参数的描述。你可以通过 Get Application Information API 获取应用内的菜单 ID。若仅需发送已有消息,赋值无效。

linkedStates

可选

String

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

features

可选

Object

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

body

可选

Object

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

Header

可选

Object

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

tag

可选

List

展示的消息标签,支持多语言。如需指定,至少指定 defaulten_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
  }
}