> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flashduty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 企业微信

> 通过集成企业微信第三方应用，实现在企业微信端接收和响应告警的能力

<Tip>**版本要求**：IM 集成需要 On-call 专业版及以上订阅。[了解更多](https://flashcat.cloud/flashduty/price/)</Tip>

本文档支持 [集成第三方应用](#third-party) 或 [集成企业自建应用](#self) 两种方式。

<div className="hide" />

<Note>
  **集成第三方应用** 和 **集成自建应用** 两种方式只需按需配置其中一种。
</Note>

<span id="third-party" />

## 一、集成第三方应用

<Info>
  Flashduty 作为企业微信服务商，为您提供 Flashduty 应用的长期免费版本。该应用需要获得企业微信接口调用许可才能使用（免密登录 + 消息发送）。该许可目前支持 **最多 60 天** 免费，超出该使用时长后，Flashduty 需要为您购买企业微信许可，您方可继续使用。
</Info>

1. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps)，进入 应用管理 → **应用** 页面，点击 **添加第三方应用**。

   ![2025-09-18-11-36-22](https://docs-cdn.flashcat.cloud/images/png/ae4d35a354aaf22dd41b7493200517bc.png)

2. 在搜索栏输入 `Flashduty`，检索到应用后，点击 **添加** 按钮。

   ![2025-09-18-11-38-57](https://docs-cdn.flashcat.cloud/images/png/77347db478c45f4c9d238d587d323a78.png)

3. 修改应用 **可见范围**，推荐选择全员或具体部门节点，以避免新增企业成员时仍需修改。然后，点击 **同意以上授权并添加** 完成安装。

   ![2025-09-18-12-05-07](https://docs-cdn.flashcat.cloud/images/png/0821d1afdeb5db34c4c9b5548d5c8ca1.png)

4. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps)，进入 **我的企业** 页面，获取 `企业 ID`。

   ![2025-09-18-11-44-54](https://docs-cdn.flashcat.cloud/images/png/c032dc755a72550d57658dd5962dafe4.png)

5. 返回 Flashduty On-call 集成配置页面，填写上一步获取的 `企业 ID`，点击 **保存** 完成集成。

<span id="self" />

## 二、集成企业自建应用

1. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps)，进入 应用管理 → **应用** 页面，点击 **创建应用**。

   ![2025-09-18-11-46-44](https://docs-cdn.flashcat.cloud/images/png/ed274f6a897b808678a5a29b23adcb66.png)

2. 配置 **应用 Logo**、**应用名称** 和 **应用可见范围**。

   ![2025-09-18-11-49-18](https://docs-cdn.flashcat.cloud/images/png/26ec124891e580a6d1e1035ba52636ba.png)

3. 返回 Flashduty On-call 集成配置页面，根据您的实际情况选择企业微信是否为 `非私有化部署版本`。

   若您的企业微信为私有化部署版本，则需要在配置页面中填写 `Endpoint`。此地址需要能够被 Flashduty 服务访问，您可以考虑为其设置 **白名单授权**。

4. 访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps)，进入 **我的企业** 页面，获取 `企业 ID`，并将其填写至 Flashduty On-call 集成配置页面。

5. 返回 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps)，进入 **应用管理** 页面，点击您所创建的应用进入详情页。获取页面中的 `AgentId`，并将其填写至 Flashduty On-call 集成配置页面。

6. 在应用详情页，获取 `Secret`，并将其填写至 Flashduty On-call 集成配置页面。

7. 在应用详情页，进入 **网页授权及 JS-SDK** 页面，点击 **设置可信域名**，并按要求配置。

<Note>
  可信域名需要指向 Flashduty On-call 的后端地址 `{api_host}`（可通过 CNAME 或代理转发实现）。关于可信域名的要求，详见企业微信官方文档 [《企业内部开发配置域名指引》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754)。
</Note>

![2025-10-15-10-30-56](https://docs-cdn.flashcat.cloud/images/png/09a91d682198d1c8f830b5ed523965ef.png)

返回 Flashduty On-call 集成配置页面，填写该域名，并完成验证。

8. 在应用详情页，进入 **接收消息** 页面，并 **设置 API 接收**。分别对 `Token` 和 `EncodingAESKey` 点击 **随机获取**，然后复制并保存所生成的值。

   ![2025-09-18-11-58-45](https://docs-cdn.flashcat.cloud/images/png/919bd2722c75513ce1d301779b39c3bf.png)

   返回 Flashduty On-call 集成配置页面，填写已保存的 `Token` 和 `EncodingAESKey`，点击 **保存** 完成集成。

9. 复制 Flashduty On-call 集成详情页中的 `回调地址`，返回企业微信刚才的 **接收消息** 页面。在 **API 接收** 设置中，填入该 `回调地址` 以及上一步保存的 `Token` 和 `EncodingAESKey`，然后点击 **保存**。

   ![2025-09-18-11-56-43](https://docs-cdn.flashcat.cloud/images/png/c990c27f7ad90af172e159fc4acfead7.png)

10. 配置**前端可信域名**

<Note>
  可信域名需要指向 Flashduty On-call 的前端地址 `console.flashcat.cloud`（可通过 CNAME 或代理转发实现）。关于可信域名的要求，详见企业微信官方文档 [《企业内部开发配置域名指引》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754)。
</Note>

前端可信域名校验通过后将生成的**主页地址**配置到企微应用的**工作台应用主页**

![2025-10-14-19-51-01](https://docs-cdn.flashcat.cloud/images/png/595a71dd5624a37312676e83c45d79c4.png)

11. 配置**可信 IP 地址**：`47.93.12.134`

![2025-10-14-20-26-45](https://docs-cdn.flashcat.cloud/images/png/fe3b2b788dda5d331148ba0946631b91.png)

## 三、配置作战室

<Warning>
  作战室功能仅支持在 **企业自建应用** 模式下开启。
</Warning>

完成先前步骤后，在 Flashduty On-call 集成配置页面的 **增强功能** 模块，勾选 **开启作战室** 即可启用该功能，无需额外配置。

<Warning>
  同一时间仅支持在一个 IM 集成中开启作战室功能。如果你已在其他 IM 集成（如钉钉、飞书、Slack）中启用了作战室，需要先在该集成中关闭后，才能在当前企业微信集成中开启。
</Warning>

## 四、配置 AISRE

如需在企业微信中使用 AISRE，请先在 Flashduty 企业微信集成中开启 **作战室** 功能，然后额外创建一个智能机器人，并使用 API 模式接入 Flashduty。

1. 在企业微信应用左侧进入 **工作台**，找到 **智能机器人**，进入机器人管理页面。
2. 创建一个新的智能机器人，创建方式选择 **手动创建**，然后选择 **使用 API 模式创建**。

<Note>
  建议由企业内部成员创建智能机器人。即使可见范围设置为 **企业内部全体成员**，其他成员仍需要创建者通过分享后才能看到该机器人。
</Note>

3. 在智能机器人的 **API 配置** 页面，连接方式选择 **使用 URL 回调**，并填入 Flashduty 集成配置页提供的 `URL`。
4. 在企业微信智能机器人的 API 配置页中生成 `Token` 和 `Encoding-AESKey`，并将相同的值填写到 Flashduty 企业微信集成配置页。请确保企业微信和 Flashduty 中的 `Token`、`Encoding-AESKey` 完全一致，然后分别保存两边配置。

<Warning>
  企业微信暂不支持在创建作战室后自动将智能机器人拉入群聊。使用 AISRE 时，需要手动将智能机器人添加到对应作战室群聊中。
</Warning>

## 五、关联用户

在集成详情页的 **关联用户** 页签中，你可以查看团队成员与企业微信账号的关联状态，并快速完成批量关联。

### 查看关联状态

关联用户列表展示所有团队成员及其关联状态。你可以通过以下方式筛选：

| 筛选项     | 说明                |
| :------ | :---------------- |
| **全部**  | 查看所有团队成员          |
| **已关联** | 仅查看已完成企业微信账号关联的成员 |
| **未关联** | 仅查看尚未关联企业微信账号的成员  |

支持通过名称或邮箱搜索成员。

### 一键关联

当存在未关联的成员时，可以点击 **一键关联** 按钮。系统将尝试通过手机号或邮箱换取企业微信开放平台的账号 ID 并自动关联，效果等同于成员使用相同信息在企业微信平台登录 Flashduty。

<Tip>
  成员完成关联后，系统才能向其推送企业微信消息通知。如果关联失败，请确认成员的手机号或邮箱是否与企业微信账号一致。
</Tip>

## 六、集成企微智能体（AI SRE）

企微智能体（AI Bot）是企业微信提供的 AI 对话机器人功能。通过将 Flashduty AI SRE 与企微智能体对接，您的团队可以在企微单聊或群聊中直接通过 @ 智能体发起 AI 故障排查会话，无需离开企业微信。

<Warning>
  智能体集成使用**独立于普通应用的凭据**（Bot Token 和 Bot EncodingAESKey）。请勿将 [集成企业自建应用](#self) 步骤 8 中生成的 Token / EncodingAESKey 填入此处——两套凭据彼此独立，混用将导致签名验证失败。
</Warning>

<Note>
  AI SRE 功能需要账户开通对应权限。如未开通，企微智能体收到消息后将不作任何响应。
</Note>

### 配置步骤

<Steps>
  <Step title="在企业微信管理后台创建智能体">
    访问 [企业微信管理后台](https://work.weixin.qq.com/wework_admin/frame#apps)，进入 **应用管理 → AI 助理** 页面，点击 **创建 AI 助理**（智能体），完成基础信息配置（名称、头像、可见范围）。
  </Step>

  <Step title="获取 Bot Token 和 EncodingAESKey">
    进入已创建智能体的详情页，找到 **接收消息** 配置区域，分别对 `Token` 和 `EncodingAESKey` 点击 **随机生成**，然后复制并妥善保存这两个值。

    这两个值仅属于该智能体，与您在企业微信自建应用中配置的 Token / EncodingAESKey **完全不同**。
  </Step>

  <Step title="在 Flashduty 集成配置页填写智能体凭据">
    返回 Flashduty On-call 企业微信集成详情页，在 **AI SRE 智能体** 配置区域，将上一步获得的 `Bot Token` 和 `Bot EncodingAESKey` 分别填入对应字段，点击 **保存**。

    保存成功后，页面会显示该集成的 `integration_key`（即集成密钥）。
  </Step>

  <Step title="配置智能体的回调地址">
    复制 Flashduty On-call 集成详情页中的 **智能体回调地址**，格式为：

    ```
    https://<your-api-host>/event/push/wecom/bot?integration_key=<integration_key>
    ```

    返回企业微信管理后台，进入该智能体的 **接收消息** 设置，将回调地址、Token 和 EncodingAESKey 填入对应字段，点击 **保存**。

    企业微信会向该地址发送一次 GET 请求进行 URL 验证（echostr 校验），Flashduty 服务器会自动完成验证应答。
  </Step>
</Steps>

### 使用方式

配置完成后，在企微单聊或群聊中 **@ 您的智能体**，输入问题或故障描述，即可触发 AI SRE 会话。智能体支持以下消息类型：

| 类型       | 说明                     |
| :------- | :--------------------- |
| **文本**   | 直接提问或描述问题              |
| **图片**   | 发送截图，AI 将解析图片内容进行分析    |
| **文件**   | 发送日志或配置文件，AI 将读取内容辅助排查 |
| **引用回复** | 引用上一条消息追问，AI 会结合上下文作答  |

<Note>
  企业微信智能体采用**拉取式流式响应**（stream polling）：AI 生成回复时，企业微信客户端会定期向回调地址发送 `msgtype=stream` 请求拉取最新内容，直到 AI 回复完成。这是企业微信智能体的平台机制，用户无需额外配置。
</Note>

### 常见问题

<AccordionGroup>
  <Accordion title="智能体收到消息后没有任何响应">
    请按以下顺序排查：

    1. 确认账户已开通 AI SRE 功能权限
    2. 确认回调地址中的 `integration_key` 与 Flashduty 集成详情页显示的值完全一致
    3. 确认 Flashduty 集成配置页中填写的 `Bot Token` 和 `Bot EncodingAESKey` 与智能体详情页 **接收消息** 中的值一致，而非来自企业微信自建应用
    4. 在企业微信管理后台查看智能体的回调日志，确认请求是否到达以及是否有错误码
  </Accordion>

  <Accordion title="配置回调地址时提示「URL 验证失败」">
    * 确认 Flashduty 服务能够被企业微信服务器正常访问（公网可达）
    * 确认填写的 `Token` 和 `EncodingAESKey` 与 Flashduty 集成配置页中保存的值完全一致
    * 确认回调地址中的 `integration_key` 参数正确，且对应的集成处于启用状态
  </Accordion>

  <Accordion title="智能体签名验证失败（invalid signature）">
    这通常意味着 Bot Token 或 Bot EncodingAESKey 填写有误。请注意：智能体的 Token / EncodingAESKey 与企业微信自建应用（普通 IM 集成）的 Token / EncodingAESKey **是两套独立凭据**，请在智能体详情页的 **接收消息** 区域重新生成并更新至 Flashduty 集成配置。
  </Accordion>
</AccordionGroup>

## 七、常见问题

<AccordionGroup>
  <Accordion title="点击集成保存按钮后，系统报错「authorize app first」？">
    * 请检查您是否已完成应用的安装步骤。例如，您是否可以在企业微信工作台中看到 Flashduty On-call 应用
    * 请检查您是否正确配置了 `Corp ID`
  </Accordion>

  <Accordion title="如何完成账户关联或消息发送提示「未关联应用」？">
    1. 登录企业微信客户端（桌面端和移动端均可），进入 **工作台**，找到并打开 Flashduty 应用
    2. 首次进入应用需要登录。选择您的成员账号，通过密码或单点登录方式登入成功后，即可完成 Flashduty 账号与企业微信账号的关联
    3. 后续进入应用将自动免密登录
  </Accordion>

  <Accordion title="如何发送故障通知？">
    1. 发送通知前，必须参照上一问题完成账户关联
    2. 进入指定协作空间，导航至 `分派策略` → **个人渠道**，选择 `企业微信` 作为通知方式即可
    3. Flashduty On-call 支持对企业微信通知内容进行自定义。您可以前往 **模板管理** 页面，设定自定义模板

    <Note>
      自定义区域最多可展示 8 行，超出部分将被企业微信截断。
    </Note>

    ![2025-09-18-12-02-26](https://docs-cdn.flashcat.cloud/images/png/9cb6a325b4b16875fec3e0c5054be25b.png)
  </Accordion>

  <Accordion title="如何在企业微信内处理告警？">
    * 点击卡片消息，可直接进入告警详情页面
    * 点击 **开始处理**，可直接将告警置为 `处理中` 状态
    * 点击 **直接关闭**，可直接将告警置为 `已关闭` 状态
    * 点击 **屏蔽 2 小时**，可直接将告警屏蔽 2 小时。如果想屏蔽更长时间，可点击卡片右上角的 `...` 查看更多屏蔽选项
  </Accordion>

  <Accordion title="为什么卡片消息提供了「状态刷新」按钮？">
    根据企业微信的限制，一次卡片交互后，72 小时内只可更新一次。每一次按钮操作，都视为一次交互。

    当告警状态发生变化时，Flashduty On-call 会请求更新卡片内容。当告警状态频繁变化时，可能因超出更新次数限制导致卡片无法实时更新。此时，您可以点击 **刷新** 按钮，手动获取一次更新卡片状态的机会。
  </Accordion>

  <Accordion title="Mac 桌面端如何设置使用系统默认浏览器打开？">
    Mac 桌面端默认使用企业微信的内置浏览器打开链接。您可以尝试使用快捷键 `ctrl` + `command` + `shift` + `d` 开启调试模式，然后选择 **调试** → **浏览器、webView 相关** → **系统浏览器打开网页**，来更改链接的打开方式。使用相同的快捷键可以关闭调试模式，设置将会保留。
  </Accordion>

  <Accordion title="故障通知失败，并提示「未开通企微许可」？">
    请联系 Flashduty 客服或您的专属技术支持，为您购买并开通许可。
  </Accordion>

  <Accordion title="为什么作战室功能未按预期工作？">
    请参考 [作战室介绍文档](/zh/on-call/advanced/war-room) 的 **常见问题** 部分。
  </Accordion>

  <Accordion title="为什么在企微工作台打开应用后提示「redirect_uri需使用应用可信域名」？">
    请确认**应用主页**的 URL 中的 `redirect_uri` 参数中的域名是否完成企业微信要求的域名归属认证，详见企业微信官方文档 [《企业内部开发配置域名指引》](https://open.work.weixin.qq.com/wwopen/common/readDocument/40754)。
  </Accordion>
</AccordionGroup>
