IM通知群管理
概述
IM通知群是 1Duty 中告警通知的重要分发渠道。通过创建和管理IM通知群,您可以将告警消息推送到钉钉、飞书或企业微信的群聊中,让团队成员实时掌握告警动态。IM通知群还可以作为分派策略的通知目标,实现告警自动推送到指定群组。
1Duty 支持两种IM集成方式:
- 自定义机器人:在IM群中添加自定义机器人,获取Webhook地址进行消息推送(简单快速)
- 自建应用:在IM开放平台创建企业内部应用,实现更丰富的功能(支持消息互动、用户关联等)
钉钉集成
钉钉支持自定义机器人和自建应用两种集成方式。
方式一:自定义机器人
适用于简单的消息推送场景,配置快速便捷。
- 打开目标钉钉群 > 点击右上角「群设置」
- 选择「智能群助手」>「添加机器人」
- 选择「自定义」机器人
- 设置机器人名称和安全设置(建议选择「加签」方式)
- 复制生成的 Webhook URL
钉钉自定义机器人需要配置安全设置。1Duty 支持「加签」方式验证,请在创建通知群时同时填入签名密钥(Secret)。
方式二:自建应用
适用于需要更丰富功能的场景,支持消息互动、用户关联等高级特性。
1. 创建自建应用
访问 钉钉开发者后台 → 应用开发 → 企业内部开发,创建应用。
应用图标可使用 1Duty 官方 logo。
2. 复制企业 CorpId
点击页面右上角企业头像,在下拉菜单中复制 CorpId。
3. 复制应用凭证信息
进入创建的应用详情界面,通过左侧菜单栏前往 应用能力 → 凭证与基础信息 页面,复制 AgentId、Client ID 和 Client Secret。
4. 配置事件订阅
前往 开发配置 → 事件与回调 页面。设置推送方式为 Stream 模式。
在事件订阅列表中,订阅以下事件:
群会话更换群名称群会话解散群群内安装酷应用群内卸载酷应用
配置完成后点击 保存。
5. 添加应用能力
创建酷应用。进入 开发配置 → 添加应用能力 → 酷应用 → 酷应用列表 页面,点击 创建酷应用 按钮,选择 扩展到群会话。
进入 编辑酷应用 页面,完成以下步骤:
- 填写基本信息。图标可使用 1Duty 官方 logo。
- 配置功能设计。在左侧选中 群快捷入口 和 消息卡片。群快捷入口图标可使用 1Duty 官方 logo,桌面和移动端访问地址请复制集成详情里的 酷应用网页地址。
- 跳过第三步功能开发,进入第四步 预览发布,点击 发布 按钮并确认。
6. 配置机器人与消息推送
进入 应用能力 → 机器人 页面,打开机器人配置,填写名称并上传图标,然后点击 保存。图标可使用 1Duty 官方 logo。
7. 配置应用地址
进入 应用能力 → 网页应用 页面。根据 1Duty 集成详情中的 应用首页地址 和 PC 端首页地址,配置 应用首页地址 和 PC 端首页地址。完成后点击 保存。
8. 申请应用权限
进入 开发配置 → 权限管理 页面,为先前步骤创建的群应用申请以下权限:
qyapi_robot_sendmsg:向群聊或个人发送消息qyapi_chat_manage:钉钉群基础信息管理权限Card.Instance.Write:卡片实例写权限qyapi_get_member_by_mobile:通过手机号获取成员信息
9. 发布应用
完成以上配置后,在钉钉开放平台发布应用,使其正式生效。
企业微信集成
企业微信支持第三方应用和企业自建应用两种集成方式。
方式一:第三方应用
1Duty 提供企业微信第三方应用,配置简单快速。
- 访问 企业微信管理后台,进入 应用管理 → 应用 页面,点击 添加第三方应用。
- 在搜索栏输入
1Duty,检索到应用后,点击 添加 按钮。 - 修改应用 可见范围,推荐选择全员或具体部门节点,以避免新增企业成员时仍需修改。然后,点击 同意以上授权并添加 完成安装。
- 访问 企业微信管理后台,进入 我的企业 页面,获取
企业 ID。 - 返回 1Duty 集成配置页面,填写上一步获取的
企业 ID,点击 保存 完成集成。
方式二:企业自建应用
适用于需要自定义配置的场景。
在 1Duty 中配置企业微信
在「IM通知群管理」页面,添加企业微信需要添加以下配置:
基础信息
1Duty已完成企业微信域名认证,您无需额外配置域名
接收消息配置
在您的企业微信管理后台中配置接收消息API后,将获取到的Token和EncodingAESKey回填到下方。
企业微信应用配置
将以下内容复制后填写到您的企业微信管理后台 → 自建应用对应配置中。
配置路径:应用管理 → 自建应用 → 企业可信 IP。
在企业微信管理后台配置应用
- 访问 企业微信管理后台,进入 应用管理 → 应用 页面,点击 创建应用。
- 配置 应用 Logo、应用名称 和 应用可见范围。
- 返回 1Duty 集成配置页面,根据您的实际情况选择企业微信是否为
非私有化部署版本。若您的企业微信为私有化部署版本,则需要在配置页面中填写Endpoint。 - 访问 企业微信管理后台,进入 我的企业 页面,获取
企业 ID,并将其填写至 1Duty 集成配置页面。 - 返回 企业微信管理后台,进入 应用管理 页面,点击您所创建的应用进入详情页。获取页面中的
AgentId,并将其填写至 1Duty 集成配置页面。 - 在应用详情页,获取
Secret,并将其填写至 1Duty 集成配置页面。 - 在应用详情页,进入 网页授权及 JS-SDK 页面,点击 设置可信域名,并按要求配置。可信域名需要指向 1Duty 的后端地址
api.1duty.com。 - 在应用详情页,进入 接收消息 页面,并 设置 API 接收。分别对
Token和EncodingAESKey点击 随机获取,然后复制并保存所生成的值。 - 返回 1Duty 集成配置页面,填写已保存的
Token和EncodingAESKey,点击 保存 完成集成。 - 复制 1Duty 集成详情页中的
回调地址,返回企业微信刚才的 接收消息 页面。在 API 接收 设置中,填入该回调地址以及上一步保存的Token和EncodingAESKey,然后点击 保存。 - 配置前端可信域名:可信域名需要指向 1Duty 的前端地址
tenant.1duty.com。前端可信域名校验通过后将生成的主页地址配置到企微应用的工作台应用主页。 - 配置可信 IP 地址:
101.133.229.197,47.100.244.149
飞书集成
飞书支持自定义机器人和自建应用两种集成方式。
方式一:自定义机器人
适用于简单的消息推送场景,配置快速便捷。自定义机器人仅支持发送消息,不支持消息卡片原地更新和 @具体人员。
- 打开目标飞书群 > 点击右上角「...」> 「群设置」
- 选择「群机器人」>「添加机器人」
- 选择「自定义机器人」
- 设置机器人名称和描述
- 复制生成的 Webhook URL
方式二:自建应用
适用于需要更丰富功能的场景,支持消息卡片原地更新、@具体人员、群成员自动同步等高级特性。推荐使用此方式以获得完整体验。
1. 创建企业自建应用
访问 飞书开放平台 → 创建企业自建应用,填写应用名称和描述。
2. 获取应用凭证
进入应用详情页的「凭证与基础信息」页面,获取 App ID 和 App Secret,稍后在 1Duty 中配置时需要填写。
3. 添加应用能力
进入应用详情页的「添加应用能力」页面,添加以下两项能力:
- 机器人:使应用能够以机器人身份在群聊中发送告警消息和互动卡片
- 网页应用:使应用支持网页跳转,用于告警详情页等场景
4. 配置事件订阅
进入应用详情页的「事件订阅」配置页面,完成以下配置:
- 将 1Duty 集成详情中提供的回调地址填入「请求 URL」
- 配置加密策略,生成并保存
Encrypt Key和Verification Token - 添加以下事件:
事件名称 Event Key 用途 机器人进群 im.chat.member.bot.added_v1自动发现并注册新群 机器人出群 im.chat.member.bot.deleted_v1机器人被移除时清理群记录 群成员加入 im.chat.member.user.added_v1新成员加入时自动同步 open_id 群信息变更 im.chat.updated_v1群名变更时自动同步到 1Duty 群解散 im.chat.disbanded_v1群解散时自动清理群记录 接收消息 im.message.receive_v1维持 WebSocket 长连接稳定
事件订阅支持 WebSocket 长连接模式,1Duty 会自动建立连接并保持心跳,无需公网回调地址。
5. 申请应用权限
进入「权限管理」页面,申请以下权限:
| 权限 | 说明 | 用途 |
|---|---|---|
contact:user.base:readonly |
获取用户基本信息(只读) | 读取用户姓名等基本信息 |
contact:user.email:readonly |
获取用户邮箱(只读) | 通过邮箱匹配 1Duty 成员 |
contact:user.id:readonly |
获取用户 ID(只读) | 获取 open_id 用于卡片 @提及 |
contact:user.phone:readonly |
获取用户手机号(只读) | 通过手机号匹配 1Duty 成员 |
im:chat:readonly |
获取群组信息(只读) | 获取群成员列表、接收群事件回调 |
im:message |
读写消息 | 发送告警消息、更新卡片内容(原地刷新) |
im:message:send_as_bot |
以机器人身份发送消息 | 向群聊发送告警通知卡片 |
6. 配置应用可用范围(重要)
这一步经常被忽略,但至关重要!如果应用可用范围未覆盖群内所有成员,将导致无法获取部分用户的手机号(飞书返回错误码 41050),进而无法 @这些值班人。
进入飞书管理后台 → 应用管理 → 找到你的应用 → 应用可用范围,进行配置:
- 推荐设置为「全部成员」,避免新增成员时再次调整
- 或手动添加所有需要被 @的值班人所在的部门/用户
权限 scope(上一步申请的)决定了 API 能否返回手机号字段;应用可用范围决定了应用能访问哪些用户。两者缺一不可。若日志中出现 code=41050, no user authority error,请检查应用可用范围配置。
7. 发布应用
完成以上配置后,在飞书开放平台发布应用,使其正式生效。
8. 在 1Duty 中添加通知群并关联飞书群
- 在 1Duty 的「IM通知群管理」页面,点击「+ 添加IM通知群」
- IM平台选择「飞书」,填写名称(如
feishu-app) - 连接类型选择「应用」
- 将飞书开放平台「凭证与基础信息」页面的
App ID和App Secret复制填入 - 点击「添加」完成
添加完成后,打开飞书客户端,新建一个群聊,在群聊中添加刚才创建的 1Duty 应用机器人。返回 1Duty 的「IM通知群管理」页面,在「飞书」栏目下可以看到刚才添加的 feishu-app 节点,点击展开即可看到新加入的群聊名称。
每次在新群中添加该应用机器人,1Duty 都会自动发现并注册该群,无需手动配置。
9. 卡片互动功能
使用自建应用方式时,告警消息卡片支持以下互动功能:
- 认领按钮:点击后卡片标题自动更新为「处理中」,认领按钮消失,无需跳转页面
- 关闭按钮:点击后卡片标题自动更新为「已关闭」,所有按钮消失
- 详情按钮:点击跳转到 1Duty 事件详情页
这些按钮通过飞书卡片回调实现原地更新,不会在群中产生新消息。升级通知消息不带按钮,与钉钉保持一致。
自定义机器人方式不支持卡片回调,按钮只能通过跳转链接方式实现,无法原地更新。如需原地更新功能,请使用自建应用方式。
创建通知群
完成IM应用配置后,按照以下步骤在 1Duty 中创建IM通知群:
- 进入「组织管理」>「IM通知群管理」页面
- 点击「新建通知群」按钮
- 选择IM平台类型(钉钉 / 飞书 / 企业微信)
- 填写通知群名称,便于后续在分派策略中识别
- 选择对应的IM应用(如果已配置自建应用)或粘贴自定义机器人的 Webhook 地址
- 点击「确认」完成创建
建议为通知群取一个有意义的名称,如"生产环境告警群"或"运维值班通知群",方便在配置分派策略时快速选择。
测试通知
创建通知群后,建议立即进行测试验证配置是否正确:
- 在通知群列表中找到目标群组
- 点击操作栏中的「测试」按钮
- 系统会向该群发送一条测试消息
- 检查IM群中是否成功收到测试消息
如果测试失败,请检查以下常见原因:
- Webhook 地址是否正确复制(注意不要有多余空格)
- 应用凭证信息是否正确填写
- 应用权限是否已正确申请并发布
- 回调地址是否正确配置
- 网络是否可以正常访问IM平台的 API
作为分派目标
IM通知群可以在分派策略中作为通知目标使用。当告警匹配到某个分派规则时,除了通知值班人外,还可以同时将告警推送到指定的IM群组中。
配置方式:
- 进入「告警管理」>「分派策略」
- 编辑或新建分派规则
- 在「通知群」下拉框中选择目标IM通知群
- 保存分派规则
一个分派规则可以同时关联多个通知群,实现告警消息的多群同步推送。例如同时推送到运维群和开发群。
管理通知群
在IM通知群列表中,您可以进行以下操作:
| 操作 | 说明 |
|---|---|
| 编辑 | 修改通知群名称、Webhook 地址或应用配置等信息 |
| 测试 | 发送测试消息验证配置是否生效 |
| 删除 | 删除通知群(已被分派策略引用的通知群无法直接删除) |
删除通知群前请确保没有分派策略正在使用该群组,否则相关告警将无法推送到群聊。