消息发送接口
消息中心应用提供了消息发送接口和批量消息发送接口,应用还提供了消息发送功能,里面调用了消息发送接口
1. 消息发送接口
消息发送接口api如下
url: $platformUrl/message/main/message/sendmessage
method: post
request cookie:
user_session: $user_session //用户登录后获取的user_session
request body(application/json)
{
"templateCode": "template1", //消息微服务中定义的模板
"params": { //消息参数
"url": "消息打开的功能地址",
"变量名": "变量值" // url, code, submitter为平台内置变量
},
"receiverId": "", //消息接收者id,支持部门或人的id
"senderId": "", //消息发送者id
"senderName": "", //消息发送者名称
"channel": "" //消息发送通道: portal,email,sms,wx,dingtalk,多通道使用逗号分隔
}
response body(application/json)
{
"success": true, //状态, 取值范围true, false
"msg": "" //错误消息
}
response status: 200表示成功,其它表示失败
1.1 templateCode
templateCode是指消息微服务中的消息模板编码
1.2 如何使用第三方的短信模板?
第一步:第三方短信平台申请短信模板;
第二步:应用门户中“系统管理->第三方平台配置->短信配置”功能中定义自定义短信
第三步:应用门户中“消息中心->消息模板管理”功能中定义消息模板,在消息模板的短信模板中引用第二步中的“编码”
第四步:通过上面的发消息接口,发送消息。
1.3 消息内容模板可以使用${变量名}的方式定义变量
发送消息时需要给出相应变量的值。有三个变量名(code, url, submitter)是内置名称,不允许使用。
任务消息模板是一个特殊的消息模板,格式类似如下:
收到${submiter}提交的新任务: ${title}, 请查看`http://entryhcr0096-vip.a.xcaas.net/entry/pcapp/pc/sms.w?code=${code}`
收到的短信中,点击此链接将会自动唤起app并打开相应的功能页面。
2. 自定义消息通道
2.1 注册自定义消息通道
消息通道地址支持两种格式:
绝对地址:以http:或https:开头;
微服务地址:以"/服务名"开头;
消息通道编码不能包含sms
2.2 实现自定义通道接口
自定义通道接口需要符合以下规范:
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"
}
}
2.3 常见错误
- No message available
自定义通道的地址设置的不对
- 消息模板XXX未指定短信模板时,不能使用短信方式
code不能包含sms,会被认为是短信
3. 批量消息发送接口
批量消息发送接口api如下
url: $platformUrl/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"
}]
4. 匿名调用
消息中心提供的两个消息发送api默认都是注册用户(登录后)才能访问,可在应用资源管理中设置匿名用户访问实现匿名调用