Microsoft 365 Graph Openclaw

📬 Webhook驱动的365自动化,告别LLM轮询

Microsoft 365 Graph webhook集成,支持邮件/日历/文件/联系人管理,通过推送模式降低LLM轮询成本

收藏
4.6k
安装
1.2k
版本
0.2.2
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

本技能通过 Microsoft Graph API 提供全面的 Microsoft 365 自动化能力,采用 OAuth 2.0 设备码流认证,支持个人与工作/学校账户。核心功能覆盖四大领域:

邮件操作:列表筛选、读取正文、移动文件夹、发送HTML邮件(支持附件)、标记已读状态。支持通过 mail_fetch.pymail_send.py 进行完整的收件箱管理。

日历管理:自定义日期窗口查询、创建Teams/线下会议、更新/取消事件。注意个人账户(consumers)可能无法通过Graph自动获取Teams会议链接。

OneDrive文件:文件列表浏览、上传下载、移动操作、共享链接生成,支持本地化文件夹别名解析。

联系人维护:增删改查完整CRUD操作,默认包含在授权作用域内。

推送模式(核心亮点):区别于传统的LLM轮询收件箱,本技能实现了基于Webhook的邮件推送架构:mail_webhook_adapter.py 作为HTTP接收端完成Graph订阅握手与clientState验证,mail_webhook_worker.py 作为异步工作器处理去重队列并向OpenClaw发送唤醒信号。大幅降低API调用成本与延迟。

显著优点

1. 成本优化设计:Webhook推送模式避免持续轮询,显著减少Microsoft Graph API调用频次
2. 完整的E2E自动化:提供从EC2初始化、Caddy反向代理、systemd服务配置到订阅生命周期管理的全栈脚本

3. 安全默认:显式clientState验证、hook token分离、敏感文件自动gitignore、支持--dry-run预览所有特权操作

4. 多账户支持:通过--tenant-id--client-id灵活切换个人/工作/学校账户

5. 详细的权限分级docs/permission-profiles.md提供最小权限原则指导

潜在局限

  • 个人账户Teams限制tenant=consumers时无法通过Graph自动创建含加入链接的Teams会议
  • 依赖外部基础设施:推送模式需要公网可访问的HTTPS端点(脚本提供Caddy+EC2方案)
  • Python环境依赖:需要Python 3 + requests,非纯Shell方案
  • 令牌持久化风险state/graph_auth.json存储刷新令牌,虽被gitignore但仍需环境级保护
  • 权限配置复杂度:工作/学校账户需租户管理员预批准应用注册

适合人群

  • 需要低成本自动化Microsoft 365工作流的OpenClaw用户
  • 具备基础Linux/EC2运维能力、能配置DNS和HTTPS的技术用户
  • 希望替代IFTTT/Zapier实现自托管Microsoft 365集成的开发者
  • 对Webhook架构和OAuth设备码流有基本理解的用户

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 令牌泄露 | `graph_auth.json`含长期刷新令牌 | 存储于受保护路径、勿提交版本控制、定期轮换 |
| Webhook伪造 | 未验证的订阅推送可能被利用 | 强制`clientState`验证、hook token分离 |
| 特权脚本误操作 | EC2 setup脚本以root写systemd配置 | 强制`--dry-run`先审阅、非生产环境先行验证 |
| 作用域过度授权 | 默认 scopes 较宽 | 参考最小权限文档按需裁剪 |
| TLS配置不当 | 自签证书或过期证书导致SSL错误 | 使用Caddy自动HTTPS、校验系统时间 |

Microsoft 365 Graph Openclaw 内容

docs文件夹
references文件夹
scripts文件夹
手动下载zip · 65.3 kB
app-registration.mdtext/markdown
请选择文件