如何启用消息对接功能
在集成过单点登录的前提下(基于 企业微信、钉钉、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,
"messageTypeV2": 11,
"appId": "应用Id",
"appName": "应用名称",
"attachments": ["附件地址|附件名"],
"redirectUrl": "跳转地址",
"targets": ["用户Id"],
"projectId": "组织Id",
"createUserId": "创建者",
"processId": "流程Id"
}字段 说明 messageType11:工作表系统消息,12:工作表讨论提到消息,13:工作表讨论回复我的,14:工作流待处理消息(填写、审批、系统消息发送记录),15:工作流系统消息不发送记录 messageTypeV211:工作表系统消息,12:工作表讨论提到消息,13:工作表讨论回复我的,14:工作流待办消息(填写、审批),15:工作流系统消息不发送记录,16:工作流系统消息发送记录 attachments图片类型可直接使用,文档类型目前只能作为附件数量提醒(无法直接下载) redirectUrl对应 HAP 系统内的消息处理落地页 targets单点登录中的第三方用户 Id createUserId单点登录中的第三方用户 Id,系统触发类消息为空 processId仅工作流消息有值 完成待办推送格式如下:
{
"messageId": "消息Id",
"projectId": "组织Id",
"userId": "操作者", // 单点登录中的第三方用户Id
"processId": "流程Id"
} -
将配置文件
appextensions.json挂载至微服务容器内/usr/local/MDPrivateDeployment/integrate/appextensions.json路径。在微服务应用对应的
docker-compose.yaml文件app服务下volumes中增加:- ./volume/integrate/appextensions.json:/usr/local/MDPrivateDeployment/integrate/appextensions.json -
重启 HAP 微服务应用