如何开启消息对接功能
在集成过单点登录的前提下(基于 企业微信、钉钉、Welink、飞书、组织架构同步API 集成等同于开启过单点登录),HAP系统支持将应用消息推送给外部系统,当然也可以由HAP团队定 制开发与外部系统的消息接口对接【定制开发则需另收费】。
主动接收HAP应用消息的启用方式如下:
-
如果非基于 企业微信、钉钉、Welink、飞书、组织架构同步API 集成,则需要提前挂载以下配置文件:
/data/hap/script/volume/sso/extend.json
:{
"relation": true
}在微服务应用对应的
docker-compose.yaml
文件app
服务下volumes
中增加:- ./volume/sso/extend.json:/usr/local/MDPrivateDeployment/sso/extend.json
-
在服务器中创建接收应用消息所需的配置文件
appextensions.json
如:
/data/hap/script/volume/integrate/appextensions.json
:{
"WebhookUrl": "https://api.yourdomain.com/message/webhook",
"FinishTodoWebhookUrl": "https://api.yourdomain.com/todo/webhook",
"WebhookHeaders": {}
}配置参数说明:
- WebhookUrl:必填,接收消息的API接口地址。
- FinishTodoWebhookUrl:可选,接收待办消息的API接口地址,不需要同步待办状态无需配置。
- WebhookHeaders:可选,自定义请求头,用于身份验证等用途。
-
消息体规范
HAP 通过
POST
方式,以application/json
格式向WebhookUrl
发送 JSON 数据。发送消息推送格式如下:
{
"messageId": "消息Id",
"message": "消息内容",
"messageType": 11, // 11:工作表系统消息,12:工作表讨论提到消息,13:工作表讨论回复我的,14:工作流待处理消息(填写、审批、系统消 息发送记录),15:工作流系统消息不发送记录
"messageTypeV2": 11, // 11:工作表系统消息,12:工作表讨论提到消息,13:工作表讨论回复我的,14:工作流待办消息(填写、审批),15:工作流系统消息不发送记录,16:工作流系统消息发送记录
"appId": "应用Id",
"appName": "应用名称",
"attachments": ["附件地址|附件名"], // 图片类型可直接使用、文档类型目前只能作为附件数量提醒(无法直接下载)
"redirectUrl": "跳转地址", // 对应 HAP 系统内的消息处理落地页
"targets": ["用户Id"], // 单点登录中的第三方用户Id
"projectId": "组织Id",
"createUserId": "创建者", // 单点登录中的第三方用户Id,系统触发类消息为空
"processId": "流程Id" // 仅工作流消息有值
}完成待办推送格式如下:
{
"messageId": "消息Id",
"projectId": "组织Id",
"userId": "操作者", // 单点登录中的第三方用户Id
"processId": "流程Id"
} -
将配置文件
appextensions.json
挂载至hap-community
容器内/usr/local/MDPrivateDeployment/integrate/appextensions.json
路径。在微服务应用对应的
docker-compose.yaml
文件app
服务下volumes
中增加:- ./volume/integrate/appextensions.json:/usr/local/MDPrivateDeployment/integrate/appextensions.json
-
重启 HAP 微服务应用