本页内容
本页内容
主流消息传递
Microsoft Teams 设置
安装插件,注册机器人和 Teams 应用程序,将 Teams 指向可访问的端点,并验证结果。
捆绑插件
Microsoft Teams 在当前 OpenClaw 版本中作为捆绑插件提供;在正常的打包发行版中,无需单独安装。
如果你使用的是较旧的版本,或者是未包含捆绑 Teams 的自定义安装,请直接安装 npm 包:
使用裸包以跟随当前官方发布标签。仅当需要可复现的安装时,才固定到确切版本。
本地检出(从 git 仓库中运行):
详细信息:插件
快速设置
@microsoft/teams.cli 可通过一条命令处理机器人注册、清单创建和凭据生成。
1. 安装并登录
2. 启动隧道(Teams 无法访问 localhost)
如有需要,请安装并验证 devtunnel CLI(入门指南)。
替代方案:ngrok http 18789 或 tailscale funnel 18789(每个会话的 URL 可能会更改)。如果不同,请使用您配置的网关端口。配置反向代理时,仅公开所需的 Webhook 路径。
新安装仅使用网关端口。 Doctor 在现有安装上使用一次性 channels.msteams.legacyWebhook 引脚保留端口 3978。移动回调并验证通过网关端口的传递后,删除该引脚以关闭旧端口。
3. 创建应用
这将创建一个 Entra ID (Azure AD) 应用程序,生成客户端密钥,构建并上传 Teams 应用清单(带有图标),并注册 Teams- 托管机器人(无需 Azure 订阅)。输出包括 CLIENT_ID、CLIENT_SECRET、TENANT_ID 和 Teams 应用程序 ID;它还提供直接在 Teams 中安装该应用程序。
4. 使用输出中的凭据配置 OpenClaw:
这种基于帐户的形状适用于一个或多个机器人。环境变量(MSTEAMS_APP_ID、MSTEAMS_APP_PASSWORD、MSTEAMS_TENANT_ID)仅适用于 default 账户。每个指定帐户在同一网关端口上都有自己的机器人凭据和 Webhook 路径。有关端点示例,请参阅 多个机器人帐户。
5. 在 Teams 中安装应用
teams app create 会提示你安装该应用;请选择“Install in Teams”。如需稍后获取安装链接:
6. 验证一切正常
会对机器人注册、AAD 应用配置、清单有效性和 SSO 设置执行诊断。
对于生产,请考虑使用 联合身份验证(证书或托管身份)而不是客户端密钥。
目标
- 通过 Teams DM、群聊或频道与 OpenClaw 交谈。
- 回复始终返回到他们到达的频道。
- 默认采用安全的频道行为(除非另有配置,否则需要提及)。
手动设置(无需 Teams CLI)
工作原理
- 检查 Microsoft Teams 插件是否可用(捆绑在当前版本中)。
- 创建一个 Azure Bot(App ID + secret + tenant ID)。
- 构建引用机器人的Teams应用程序包,包括RSC权限。
- Upload/install 将 Teams 应用程序纳入团队(或 DM 的个人范围)。
- 在
~/.openclaw/openclaw.json(或环境变量)中配置msteams并启动网关。 - 网关通过 Teams SDK JWT 身份验证在
/api/messages上的gateway.port(默认18789)上提供 Bot Framework Webhook 流量。
第 1 步:创建 Azure Bot
-
Go 到 创建 Azure Bot
-
填写 基础信息 选项卡:
字段 值 机器人手柄 您的机器人名称,e.g., openclaw-msteams(必须是唯一的)订阅 选择你的 Azure 订阅 资源组 新建或使用现有 定价层 Free 适用于 dev/testing 应用类型 单租户(推荐;见下方说明) 创建类型 创建新的 Microsoft 应用 ID
- 点击 检查 + 创建,然后点击 创建(约 1-2 分钟)。
第 2 步:获取凭据
- Azure Bot 资源 → 配置 → 复制 Microsoft 应用 ID(即你的
appId)。 - 管理密码 → 应用注册 → 证书和机密 → 新建客户端机密 → 复制 值(即你的
appPassword)。 - 概览 → 复制 目录(租户)ID(即你的
tenantId)。
第 3 步:配置消息端点
- Azure Bot → 配置。
- 设置 消息传递端点:
- 生产环境:
https://your-domain.com/api/messages - 本地开发:使用隧道(参见本地开发)
- 生产环境:
第 4 步:启用 Teams 通道
- Azure Bot → 频道。
- 单击Microsoft Teams→配置→保存。
- 接受服务条款。
第 5 步:构建 Teams 应用清单
- 包含一个
bot条目,并设置botId = <App ID>。 - 作用域:
personal、team、groupChat。 supportsFiles: true(个人作用域文件处理所必需)。- 添加RSC权限(参见RSC权限)。
- 创建图标:
outline.png(32x32)和color.png(192x192)。 - 将
manifest.json、outline.png和color.png一起打包成 zip。
第 6 步:配置 OpenClaw
环境变量仅配置默认帐户。有关其他机器人注册和路由,请参阅 多个机器人帐户。
第 7 步:运行网关
当插件可用且 msteams 配置包含凭据时,Teams 通道会自动启动。
本地开发(隧道)
Teams 无法访问 localhost。请使用持久化开发隧道,以便 URL 在各次会话之间保持稳定:
替代方案:ngrok http 18789 或 tailscale funnel 18789(每个会话的 URL 可能会更改)。如果不同,请使用您配置的网关端口。配置反向代理时,仅公开所需的 Webhook 路径。
如果隧道 URL 发生变化,请更新端点:
测试机器人
运行诊断:
一次性检查机器人注册、AAD 应用、清单和 SSO 配置。
发送测试消息:
- 安装 Teams 应用(从
teams app get <id> --install-link获取安装链接)。 - 在Teams中找到机器人并发送DM。
- 检查网关日志中是否有传入活动。