Microsoft Teams(插件)
"进入此地者,放弃一切希望。"
更新时间:2026-01-21
状态:支持文本 + 私信附件;频道/群组文件发送需要 sharePointSiteId + Graph 权限(参见在群聊中发送文件)。投票通过 Adaptive Cards 发送。
需要插件
Microsoft Teams 作为插件提供,不包含在核心安装中。
破坏性变更(2026.1.15): MS Teams 已从核心移出。如果你使用它,必须安装插件。
原因说明:保持核心安装更轻量,并让 MS Teams 依赖项可以独立更新。
通过 CLI 安装(npm 注册表):
openclaw plugins install @openclaw/msteams
本地检出(从 git 仓库运行时):
openclaw plugins install ./extensions/msteams
如果你在配置/新手引导过程中选择 Teams 并检测到 git 检出, OpenClaw 将自动提供本地安装路径。
详情:插件
快速设置(初学者)
- 安装 Microsoft Teams 插件。
- 创建一个 Azure Bot(App ID + 客户端密钥 + 租户 ID)。
- 使用这些凭证配置 OpenClaw。
- 通过公共 URL 或隧道暴露
/api/messages(默认端口 3978)。 - 安装 Teams 应用包并启动 Gateway 网关。
最小配置:
{
channels: {
msteams: {
enabled: true,
appId: "<APP_ID>",
appPassword: "<APP_PASSWORD>",
tenantId: "<TENANT_ID>",
webhook: { port: 3978, path: "/api/messages" },
},
},
}
注意:群聊默认被阻止(channels.msteams.groupPolicy: "allowlist")。要允许群组回复,请设置 channels.msteams.groupAllowFrom(或使用 groupPolicy: "open" 允许任何成员,需要提及才能触发)。
目标
- 通过 Teams 私信、群聊或频道与 OpenClaw 交流。
- 保持路由确定性:回复始终返回到消息到达的渠道。
- 默认使用安全的渠道行为(除非另有配置,否则需要提及)。
配置 写入
默认情况下,Microsoft Teams 允许通过 /config set|unset 触发的配置更新写入(需要 commands.config: true)。
禁用方式:
{
channels: { msteams: { configWrites: false } },
}
访问控制(私信 + 群组)
私信访问
- 默认:
channels.msteams.dmPolicy = "pairing"。未知发送者在获得批准之前将被忽略。 channels.msteams.allowFrom接受 AAD 对象 ID、UPN 或显示名称。当凭证允许时,向导会通过 Microsoft Graph 将名称解析为 ID。
群组访问
- 默认:
channels.msteams.groupPolicy = "allowlist"(除非添加groupAllowFrom,否则被阻止)。使用channels.defaults.groupPolicy在未设置时覆盖默认值。 channels.msteams.groupAllowFrom控制哪些发送者可以在群聊/频道中触发(回退到channels.msteams.allowFrom)。- 设置
groupPolicy: "open"允许任何成员(默认仍需提及才能触发)。 - 要不允许任何频道,设置
channels.msteams.groupPolicy: "disabled"。
示例:
{
channels: {
msteams: {
groupPolicy: "allowlist",
groupAllowFrom: ["user@org.com"],
},
},
}
团队 + 频道允许列表
- 通过在
channels.msteams.teams下列出团队和频道来限定群组/频道回复的范围。 - 键可以是团队 ID 或名称;频道键可以是会话 ID 或名称。
- 当
groupPolicy="allowlist"且存在团队允许列表时,仅接受列出的团队/频道(需 要提及才能触发)。 - 配置向导接受
Team/Channel条目并为你存储。 - 启动时,OpenClaw 将团队/频道和用户允许列表名称解析为 ID(当 Graph 权限允许时) 并记录映射;未解析的条目保持原样。
示例:
{
channels: {
msteams: {
groupPolicy: "allowlist",
teams: {
"My Team": {
channels: {
General: { requireMention: true },
},
},
},
},
},
}
工作原理
- 安装 Microsoft Teams 插件。
- 创建一个 Azure Bot(App ID + 密钥 + 租户 ID)。
- 构建一个引用机器人并包含以下 RSC 权限的 Teams 应用包。
- 将 Teams 应用上传/安装到团队中(或用于私信的个人范围)。
- 在
~/.openclaw/openclaw.json(或环境变量)中配置msteams并启动 Gateway 网关。 - Gateway 网关默认在
/api/messages上监听 Bot Framework webhook 流量。
Azure Bot 设置(前提条件)
在配置 OpenClaw 之前,你需要创建一个 Azure Bot 资源。
步骤 1:创建 Azure Bot
-
填写基本信息选项卡:
字段 值 Bot handle