面向通过 Forward Channel API 接入外部 IM 平台的用户,介绍渠道授权、fixed/pairing 执行上下文模式,以及各渠道如何创建应用/机器人、需要配置哪些权限、需要获取哪些凭据。
先区分渠道授权与 Channel Pairing
Forward Channel 有两个独立的配置维度:
| 维度 | 解决的问题 | 选项 |
|---|---|---|
| 渠道授权 | Forward 如何获取 IM 机器人连接和收发权限 | QR Session 扫码(推荐)或直连凭据 |
| Identity 解析 | 某条上行消息应使用哪个 Identity 和 Template | fixed 或 pairing |
pairing 模式的 Channel 仍需先完成渠道授权使 binding_status=bound;之后当真实 IM 会话首次触发时,Forward 会生成 Pairing Code 来绑定该消息范围的执行上下文。
扫码绑定流程(推荐)
扫码绑定适用于 dingtalk、feishu、wecom、wechat 全部渠道,步骤如下:
- 创建 Channel:调用 创建 Channel 接口,传入
name、channel_type及期望的 Identity 解析模式,省略channel_config.credentials。fixed模式需同时传入identity_id和template_id;pairing模式传identity_resolution.mode=pairing,不传identity_id或template_id。 - 创建 QR Session:调用 创建 Channel QR Session 接口,得到
qr_code_image_base64(二维码图片)或qr_code_content(授权 URL)。poll_interval_seconds为可选兼容字段,不应作为稳定返回值依赖。 - 展示二维码并扫码授权:将二维码展示给用户,使用对应渠道的客户端扫码并确认授权。
- 轮询授权状态:调用 获取 Channel QR Session 轮询
status。如响应中包含poll_interval_seconds则按该间隔轮询,否则默认 3 秒。直到状态变为confirmed(其他状态:waiting、scanned、expired、denied、error)。 - 完成渠道授权:
status=confirmed后刷新 Channel 详情,binding_status变为bound。fixed模式的 Channel 可立即使用固定的执行上下文处理上行消息;pairing模式的 Channel 在收到未配对消息时会返回 Pairing Code——需完成下文的 Channel Pairing 后消息才会进入 Agent。
二维码有效期较短,
expired 或 denied 后可重新创建 QR Session 再次扫码。Identity 解析模式
fixed 模式
fixed 为默认模式。创建 Channel 时必须指定 identity_id 和 template_id;所有上行消息使用该固定执行上下文:
pairing 模式
pairing 模式下 Channel 仅代表 IM 传输连接——创建时不指定 Identity 或 Template:
- 用户从真实 IM 私聊或群聊向机器人发送消息。
- Channel Gateway 为未配对的 direct/room scope 创建待配对记录并发出配对码提示,不创建 Session。
- 管理端调用 完成 Channel 配对,提交
code + identity_id + template_id;自动授权可先查询 配对列表,根据channel_id + scope_type + scope_external_id匹配自己的规则,再提交channel_pairing_id + identity_id + template_id。 - 后续消息通过 Pairing 解析 Identity 和 Template,然后创建或复用 Session。
- 如需解除绑定,使用 Pair 响应中的
id调用 解除配对。
直连凭据接入(按需)
若确需使用直连凭据,需在对应开放平台创建应用/机器人、配置权限并获取凭据,再通过 创建 Channel 接口的 channel_config.credentials 传入。各渠道 channel_type 与凭据字段映射:
| 渠道 | channel_type | channel_config.credentials 字段 | 是否支持扫码绑定 |
|---|---|---|---|
| 钉钉 | dingtalk | client_id、client_secret | 是(推荐) |
| 飞书 | feishu | app_id、app_secret | 是(推荐) |
| 企业微信 | wecom | bot_id、secret | 是(推荐) |
| 个人微信 | wechat | 无需凭据 | 仅支持扫码绑定 |
| Microsoft Teams(Global) | teams | app_id、tenant_id、client_secret | 否 |
凭据仅在创建/更新 Channel 时写入,不会明文回显。
钉钉接入
创建钉钉应用
- 前往 钉钉开放平台。需选择具备开发者权限的组织,或选择某个组织后获取开发者权限。如果没有合适的组织,可使用移动端钉钉扫码快速创建一个组织。
- 点击顶部导航栏 应用开发,在钉钉应用页面点击 创建应用。
创建钉钉机器人
- 应用创建完毕后,在左侧导航栏选择 添加应用能力,点击右侧机器人卡片下方的 添加 按钮。
- 在机器人配置页面,开启机器人配置。
- 消息接收模式 选择 Stream 模式,并点击 发布 完成对机器人的配置。
配置权限
在应用的 权限管理 中开通以下权限:
| 权限 | 说明 |
|---|---|
Card.Streaming.Write | 流式写入卡片消息 |
Card.Instance.Write | 创建/更新卡片实例 |
qyapi_robot_sendmsg | 机器人发送消息 |
发布应用
- 在左侧导航栏选择 版本管理与发布,点击 创建新版本。
- 填写应用版本号和版本描述,并根据业务实际需求选择应用的可用范围,最后点击 保存 完成发布。
若可用范围选择全部员工,则应用发布后当前企业下所有员工都可见。
获取凭据
在左侧导航栏的 凭证与基础信息 页面,记录 Client ID 与 Client Secret,分别对应 API 的 client_id 与 client_secret。
飞书接入
创建飞书应用
- 访问 飞书开放平台,点击右上角 开发者后台。
- 点击 创建企业自建应用,填写必要信息并点击 创建。
添加并配置机器人
- 在左侧导航栏选择 添加应用能力,点击机器人卡片的 添加 按钮。
- 点击机器人配置卡片「如何开始使用」右侧编辑图标。
- 在 消息卡片回调请求方式 区域点击 去配置,订阅方式选择 使用长连接接收回调 并保存。
- 点击 事件配置,订阅方式同样选择 使用长连接接收回调 并保存。
- 在事件配置页面添加如下四个事件并保存:
- 机器人进群
- 机器人被移出群
- 消息已读
- 接收消息
配置权限
在 权限管理 > 开通权限 中,单击 批量导入/导出权限,粘贴以下 JSON 一键导入所需权限,确认后 申请开通:
发布应用
- 在左侧导航栏选择 版本管理与发布。
- 点击 创建版本,填写必要信息后点击 保存。
获取凭据
在应用的 凭证与基础信息 页面,复制 App ID(格式如 cli_xxx)和 App Secret,分别对应 API 的 app_id 与 app_secret。
企业微信接入
创建智能机器人
- 访问 企业微信管理后台,在左侧导航栏单击 安全与管理 > 管理工具,单击 创建机器人,然后单击 手动创建。
- 配置机器人可见范围。
- 下拉到页面底部单击 API 模式创建,连接方式选择 使用长连接。
获取凭据
在配置方法的 Secret 区域单击 点击获取,记录 Bot ID 和 Secret,分别对应 API 的 bot_id 与 secret。
个人微信接入
个人微信仅支持 扫码绑定,无需在开放平台创建应用,也无需配置任何直连凭据。创建 Channel 时 channel_type 传 wechat,直接按上文 扫码绑定流程(推荐) 完成授权即可。
Microsoft Teams 接入
Microsoft Teams 仅在 Global 提供。接入前需在客户的 Microsoft Entra 租户中创建应用,并将对应 Bot 安装到 Teams。当前支持个人聊天、Team 标准频道和多人群聊中的文本、图片和文件消息。
创建 Microsoft Entra 应用
- 登录 Microsoft Entra 管理中心,在目标租户中创建应用注册。
- Supported account types 选择仅限当前组织目录使用(Single tenant)。
- 在应用概览页记录 Application (client) ID 和 Directory (tenant) ID,分别对应 API 的
app_id和tenant_id。 - 在 Certificates & secrets 中创建 Client secret,并记录 secret 的 Value,对应 API 的
client_secret。
Client secret 的 Value 只会在创建时显示一次,请妥善保存;不要使用 Secret ID 代替 Value。
开通文件收发所需的 Microsoft Graph 权限
Teams 群聊和频道中的文件存储在 OneDrive 或 SharePoint。若要在多人群聊和 Team 标准频道中收发文件,需要为上一步创建的 Entra 应用开通以下 Microsoft Graph Application permissions(应用程序权限,不是 Delegated permissions):
| 权限 | 用途 |
|---|---|
Sites.ReadWrite.All | 读取和写入 SharePoint/OneDrive 文件,用于下载入站文件,以及上传并分享出站文件。 |
ChatMember.Read.All | 读取多人群聊的完整成员列表,用于为出站文件创建仅群成员可访问的分享链接。 |
- 在 Microsoft Entra 管理中心打开对应的应用注册,进入 API permissions。
- 选择 Add a permission > Microsoft Graph > Application permissions。
- 添加
Sites.ReadWrite.All和ChatMember.Read.All。 - 由租户管理员点击 Grant admin consent,并确认两项权限的状态均显示已授予。
权限范围说明:上述权限为租户级应用权限。
Sites.ReadWrite.All 可读写租户内所有站点集合中的文档和列表项,ChatMember.Read.All 可读取所有聊天的成员信息。请由客户租户管理员评估后授权。个人聊天通过 Teams FileConsent 收发文件时不依赖这两项 Graph 权限,但仍需要在 Teams 应用 manifest 中启用 supportsFiles。创建并配置 Azure Bot
- 在 Azure Portal 中创建 Azure Bot,Microsoft App Type 选择 Single Tenant。
- 将 Azure Bot 绑定到上一步创建的 App ID 和 Tenant ID。
- 在 Azure Bot 的 Configuration 页面,将 Messaging endpoint 设置为 Global 环境提供的完整 Teams 消息回调地址,路径为
/channels/teams/messages。 - 在 Azure Bot 的 Channels 页面启用 Microsoft Teams 渠道。
创建并发布 Teams 应用
- 打开 Developer Portal for Teams,创建 Teams 应用。
- 添加 Bot capability,并绑定与 Azure Bot 相同的 App ID。
- 根据使用范围勾选
personal、team和groupChatscope。 - 在 Teams 应用 manifest 的 Bot 配置中设置
supportsFiles: true,用于启用个人聊天中的 FileConsent 文件收发能力。 - 在 manifest v1.12 或更高版本中,为群聊和频道入站文件解析声明 RSC 消息读取权限:多人群聊使用
ChatMessage.Read.Chat,Team 标准频道使用ChannelMessage.Read.Group。 - 下载应用包,通过客户的 Teams 管理中心或组织 App catalog 发布,并在目标个人聊天、多人群聊或 Team 中安装。更新 manifest 权限后,需要重新发布并在目标多人群聊或 Team 中重新安装/同意应用。
ChatMessage.Read.Chat 和 ChannelMessage.Read.Group 用于在当前入站消息的 Bot 回调缺少完整附件信息时,通过 Graph 补查该消息及其附件,不会取消现有的 @Bot 触发要求。
在 Team 标准频道和多人群聊中,用户需要显式 @Bot 才会触发消息;个人聊天不需要 @Bot。
创建 Teams Channel
调用 创建 Channel,channel_type 传 teams,并在 channel_config.credentials 中提供 app_id、tenant_id 和 client_secret。
创建成功后,确认 Channel 的 enabled=true 且 binding_status=bound,再分别从个人聊天、Team 标准频道和多人群聊验证文本、图片及文件的收发。群聊和频道场景需要使用显式 @Bot 的消息进行验证。
当前 Teams 接入支持文本、图片、文件消息和文本审批操作。个人聊天文件通过 Teams FileConsent 收发;多人群聊和 Team 标准频道文件通过 SharePoint/OneDrive 与 Bot Connector 处理。仍不支持通用卡片、主动消息、会议或语音能力。群聊和频道入站文件补查需要上述 RSC 权限,但当前仍只处理个人聊天消息或显式
@Bot 的群聊/频道消息,不会监听全部消息。- Microsoft Graph permissions reference
- Send and receive files
- Get chatMessage in a channel or chat
- Grant RSC permissions to an app

