Microsoft 365 Graph 办公自动化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_c334ae17/teams-automation。
技能介绍
要解决什么问题
在 Microsoft 365 环境里做自动化,往往要分别对接 Outlook 邮件、日历、Teams 聊天/频道、组织用户目录、在线状态、OneDrive/SharePoint 以及 Planner/To Do。各模块 API 路径与权限 scope 不同,若每次从零拼 HTTP 客户端和 OAuth,成本高且容易在认证流程上出错(尤其是设备码登录需要人工在浏览器完成,不能后台轮询)。
技能如何工作
本技能提供统一的 Microsoft Graph API 客户端,覆盖办公自动化常见链路:
- 邮件:读取/搜索/发送(
Mail.Read、Mail.Send) - 日历:查询事件(
Calendars.Read) - Teams:聊天与频道消息的读取与发送(
Chat.Read/Chat.ReadWrite,以及团队/频道相关只读 scope) - 用户与 Presence:组织内用户查询、在线/可用性(
User.Read.All、Presence.Read.All) - 文件与站点:OneDrive、SharePoint(
Files.Read.All、Sites.Read.All) - 任务:Planner/To Do 任务读取(
Tasks.Read)
认证采用 MSAL + 设备码流,且 token 缓存在固定路径 ~/.workbuddy/.msal_token.json(Windows 为 %USERPROFILE%\.workbuddy\.msal_token.json),一次登录、各模块共用。调用方必须先检查缓存是否有效;无有效 token 时用 --start-auth 展示设备码并等待用户确认后再 --complete-auth,禁止自动轮询。
配置通过 config.yaml(由 config.example.yaml 复制)填写 client_id、tenant,可选自定义 scopes。
适用边界与注意点
- 需在 Azure Portal 注册应用,配置 Graph 委托权限与 native client 重定向 URI,并启用 public client flows。
- AI 或脚本调用 Graph 前应以缓存为准,过期再刷新,避免每次请求都重新走完整登录。
- 写操作(发邮件、发 Teams 消息等)依赖对应写 scope,默认 scope 集合以 SKILL 文档为准,可按需覆盖。
使用场景
- 需要在脚本里按关键词检索邮箱并汇总未读线程,再决定是否代发回复
- 会议冲突排查:拉取本周日历事件并对照同事 Presence 再约 Teams 频道讨论
- 运维/内网机器人向指定 Teams 聊天或频道推送告警,并回读最近消息确认送达
- 从 SharePoint 站点或 OneDrive 列出文件路径,同时读取 Planner 里分配给自己的任务清单
适合人员
- 负责 M365 租户内集成、要把邮件/Teams/文件统一走 Graph 而不是多套 SDK 的后端工程师
- 每周用 Planner/To Do 跟踪项目、又要在 Teams 频道同步状态的项目协调或 Scrum Master
- 需要查组织通讯录、看成员在线状态后再发 Teams 消息的内网 IT 或行政支持人员
- 用 Python 调用 Graph、且必须遵守设备码登录(不能后台轮询)的自动化脚本维护者