消息发送接口
消息中心应用提供了消息发送接口和批量消息发送接口。提供的消息发送功能,调用了消息发送接口,开发者可以参考。消息发送界面如下图所示
消息发送接口
消息发送接口 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 表示成功,其它表示失败
消息模板
在“消息中心-消息模板管理”中定义消息模板,消息模板包括:编码(消息发送接口使用)、名称、标题、内容模板、短信模板(发短信时使用)、链接(点击消息打开的页面)、发送方式和接收者等内容。
消息参数
在消息模板的内容模板中定义消息内容,例如:“收到${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"}
调用接口后写入数据表,如下图所示
特别说明
- 如果需要发送短信消息,需要自定义短信模板,在消息模板中配置短信模板
批量消息发送接口
批量消息发送接口 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"
}]
自定义短信模板
第一步:第三方短信平台申请短信模板
第二步:在企业门户中,打开“系统管理-系统配置-统一通用配置”,添加“短信配置”,如下图所示
添加自定义短信,输入短信编码、短信模板编码、短信模板内容,如下图所示
第三步:在企业门户中,打开“消息中心->消息模板管理”,添加消息模板,在短信模板中引用第二步中的“短信编码”,如下图所示
第四步:通过上面的发消息接口,发送消息。
自定义消息通道
添加自定义消息通道
在企业门户中,打开“消息中心->自定义消息通道”,添加消息通道,输入名称、编码、地址,如下图所示
- 消息通道地址支持两种格式
- 绝对地址:以 http: 或 https: 开头
- 微服务地址:以“/服务名”开头
- 消息通道编码不能包含 sms
实现自定义通道接口
自定义通道接口需要符合以下规范:
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 权限中,选中发送消息和批量发送消息,如下图所示