如何开启消息对接功能
在集成过单点登录的前提下(基于 企业微信、钉钉、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 微服务应用