消息发送接口

消息中心应用提供了消息发送接口和批量消息发送接口。提供的消息发送功能,调用了消息发送接口,开发者可以参考。消息发送界面如下图所示

1722235725478

消息发送接口

消息发送接口 API 如下,由消息模板和消息参数形成消息,使用指定的发送通道,发送给接收者

请求 url: 
    /message/main/message/sendmessage
请求方法: 
    post
请求头:
     cookie:
        user_session: $user_session     //用户登录后获取的 user_session
请求参数:
    body(application/json)
    {
        "templateCode": "",             //消息模板编码
        "params": {                     //消息参数
            "url": "",              //消息打开的页面地址
            "变量名": ""             //变量值,url、code、submitter、title、subTitle 为平台内置变量
        },
        "receiverId":  "",        //消息接收者 id,支持部门或人的 id
        "senderId": "",            //消息发送者 id
        "senderName": "",        //消息发送者名称
        "channel": ""            //消息发送通道: portal、email、sms、wx、dingtalk,多通道使用逗号分隔
    }
请求返回
    body(application/json)
    {
        "success": true,        //状态, 取值范围 true, false
        "msg": ""             //错误消息
    }
请求状态
    status: 200 表示成功,其它表示失败

消息模板

在“消息中心-消息模板管理”中定义消息模板,消息模板包括:编码(消息发送接口使用)、名称、标题、内容模板、短信模板(发短信时使用)、链接(点击消息打开的页面)、发送方式和接收者等内容。

1722236168342

1722236575386

消息参数

在消息模板的内容模板中定义消息内容,例如:“收到${submiter}提交的任务 ${title}, 请及时处理。”,其中使用 ${变量名} 的方式引用消息参数。

系统内置标题 title、副标题 subTitle、消息链接 url、消息编码 code、发送者 submitter 等消息参数

  • title、subTitle、url 在消息参数 params 中赋值后使用
  • code,、submitter 可以直接使用
  • $(title) 定义消息标题,标题写入消息表的 ftitle 列
  • ${subTitle} 定义消息副标题,副标题写入消息表的 fsubtitle 列
  • ${url} 定义消息链接,链接写入消息表的 furl 列
  • 其它消息参数名,开发者自定义
  • 内容模板的值写入 fremark 列

消息发送接口中的消息参数 params 用于给 ${变量名} 参数赋值,例如

params: {"title":"111111","subTitle":"222222"}

调用接口后写入数据表,如下图所示

1722237938740

特别说明

  • 如果需要发送短信消息,需要自定义短信模板,在消息模板中配置短信模板

批量消息发送接口

批量消息发送接口 API 如下

请求 url: 
    /message/main/message/sendmessagelist

批量消息发送接口和消息发送接口的用法一样,区别在于参数为 JSON 数组,例如下面的代码表示发送两条消息

    [{
        "templateCode": "TASK_MANAGE",
        "params": {
            "url": "",
            "title": "hello"
        },
        "receiverid": "/nXeWxDG33oAoY0mpL4A.ogn/nXeWEBy33W8qNkslqxO.psm",
        "senderId": "system",
        "senderName": "system",
        "channel": "portal"
    },
    {
        "templateCode": "TASK_MANAGE",
        "params": {
            "url": "",
            "title": "hello world"
        },
        "receiverid": "/nXeWxDG33oAoY0mpL4A.ogn/nXeWEBy33W8qNkslqxO.psm",
        "senderId": "system",
        "senderName": "system",
        "channel": "portal"
    }]

自定义短信模板

第一步:第三方短信平台申请短信模板

第二步:在企业门户中,打开“系统管理-系统配置-统一通用配置”,添加“短信配置”,如下图所示

1722239169995

添加自定义短信,输入短信编码、短信模板编码、短信模板内容,如下图所示

1722239127839

第三步:在企业门户中,打开“消息中心->消息模板管理”,添加消息模板,在短信模板中引用第二步中的“短信编码”,如下图所示

1722239758295

第四步:通过上面的发消息接口,发送消息。

1722240027399

自定义消息通道

添加自定义消息通道

在企业门户中,打开“消息中心->自定义消息通道”,添加消息通道,输入名称、编码、地址,如下图所示

  • 消息通道地址支持两种格式
    • 绝对地址:以 http: 或 https: 开头
    • 微服务地址:以“/服务名”开头
  • 消息通道编码不能包含 sms

1722241371757

实现自定义通道接口

自定义通道接口需要符合以下规范:

method: post
request body(application/xml):
{
    "url": "",        //查看消息地址
    "code": "",        //消息编码
    "channel": "",        //消息通道编码
    "message": ""        //消息内容,JSON 格式
}

response(application/json):
{
    "success": true,    //取值范围 true, false
    "message": ""        //成功或错误信息
}

其中 message 参数内容包括发送者、接收者和参数,格式如下

    {
        "senderId": "发送者 ID",
        "senderName": "发送者姓名",
        "receiverId": ["接收者 ID"],
        "receiverName":"接收者姓名"],
        "params": {//发送消息时传入的 params
            "title": "123456"
        }
    }

常见错误

  • No message available:自定义通道的地址设置的不对
  • 消息模板 XXX 未指定短信模板时,不能使用短信方式
  • 消息通道编码不能包含 sms,会被认为是短信

匿名调用

消息中心提供的两个消息发送 API 默认都是注册用户(登录后)才能访问,可在应用资源管理中设置匿名调用

步骤如下:打开“系统管理-权限设置-应用资源管理”,选择“消息中心”服务,添加生产配置的“匿名用户”角色,在 API 权限中,选中发送消息和批量发送消息,如下图所示

1722243024536

results matching ""

    No results matching ""