MicrosoftGraphAPI集成工具 microsoft-graph-api

Microsoft Graph API集成工具是一款通过TypeScript脚本实现Microsoft 365邮件和日历自动化管理的技能。该工具支持邮件收发、搜索、文件夹管理,以及日历事件的查看、创建和搜索功能。提供多账户配置文件管理、自动身份验证刷新机制,适用于办公自动化、企业协作、邮件管理、日程安排等场景。关键词:Microsoft Graph API, Office 365, Outlook邮件, 日历管理, 自动化脚本, TypeScript, 办公自动化, 企业协作工具

后端开发 0 次安装 0 次浏览 更新于 3/2/2026

name: microsoft-graph-api description: 当用户询问“阅读我的邮件”、“发送邮件”、“撰写邮件”、“查看我的日历”、“获取日历事件”、“创建会议”、“安排活动”、“添加日历事件”、“搜索邮件”、“列出邮件文件夹”、“显示未读消息”、“我有哪些会议”、“从Microsoft获取邮件”或提及Microsoft Graph、Office 365邮件或Outlook日历集成时,应使用此技能。 version: 0.3.0

Microsoft Graph API 集成

通过Bun执行的TypeScript脚本访问Microsoft 365邮件和日历。

概述

此技能提供对Microsoft Graph API的访问,用于:

  • 邮件:列出、阅读、搜索和发送邮件
  • 日历:查看、搜索和创建日历事件

所有脚本都返回JSON并自动处理身份验证。

响应格式

所有脚本输出具有一致结构的JSON:

成功

{"status": "success", "data": [...]}

需要身份验证

{
  "status": "auth_required",
  "userCode": "ABC123",
  "verificationUri": "https://microsoft.com/devicelogin",
  "expiresAt": "2024-01-15T10:30:00.000Z",
  "message": "要登录,请使用Web浏览器..."
}

当您收到auth_required时,向用户显示:

要访问您的邮件,请进行身份验证:
1. 转到:https://microsoft.com/devicelogin
2. 输入代码:ABC123

完成身份验证后请告诉我。

然后重试相同的命令 - 脚本将自动完成身份验证。

身份验证待处理

{
  "status": "auth_pending",
  "userCode": "ABC123",
  "verificationUri": "https://microsoft.com/devicelogin",
  "expiresAt": "...",
  "message": "..."
}

用户已看到代码但尚未完成登录。提醒他们完成身份验证。

错误

{"status": "error", "error": "错误描述"}

邮件访问

所有脚本位于${CLAUDE_PLUGIN_ROOT}/skills/microsoft-graph/scripts/

列出邮件

bun run ${CLAUDE_PLUGIN_ROOT}/skills/microsoft-graph/scripts/emails.ts list
bun run emails.ts list --folder "已发送邮件" --top 5
bun run emails.ts list --profile work

阅读特定邮件

bun run emails.ts read --id AAMkAG...

list命令输出中获取ID。

搜索邮件

bun run emails.ts search --query "from:boss@company.com"
bun run emails.ts search --query "subject:季度报告"
bun run emails.ts search --query "hasAttachments:true"

列出邮件文件夹

bun run emails.ts folders

发送邮件

# 简单邮件
bun run emails.ts send --to "user@example.com" --subject "你好" --body "嗨!"

# 多个收件人带抄送
bun run emails.ts send --to "a@example.com,b@example.com" --cc "c@example.com" --subject "团队更新" --body "这是更新..."

# HTML邮件
bun run emails.ts send --to "user@example.com" --subject "报告" --body "<h1>月度报告</h1><p>详情...</p>" --html

# 带密送
bun run emails.ts send --to "team@example.com" --bcc "manager@example.com" --subject "公告" --body "..."

日历访问

列出即将发生的事件

bun run ${CLAUDE_PLUGIN_ROOT}/skills/microsoft-graph/scripts/calendar.ts list
bun run calendar.ts today
bun run calendar.ts week
bun run calendar.ts list --start tomorrow --end +7d

查看特定事件

bun run calendar.ts view --id AAMkAG...

搜索事件

bun run calendar.ts search --query "团队站会"

日期格式

  • 相对today, tomorrow, +7d, +1m, +1y
  • 绝对:ISO格式 2024-01-152024-01-15T14:00:00

创建日历事件

# 基本事件(默认1小时时长)
bun run calendar.ts create --subject "团队会议" --start "2024-01-15T14:00:00"

# 带结束时间的事件
bun run calendar.ts create --subject "研讨会" --start "2024-01-15T09:00:00" --end "2024-01-15T12:00:00"

# 带位置和描述的事件
bun run calendar.ts create --subject "午餐" --start "2024-01-15T12:00:00" --location "咖啡馆" --body "团队午餐"

# 带参与者的活动
bun run calendar.ts create --subject "一对一会议" --start tomorrow --end +1d --attendees "colleague@example.com"

# 多个参与者
bun run calendar.ts create --subject "评审" --start "2024-01-15T10:00:00" --attendees "a@ex.com,b@ex.com,c@ex.com"

# 全天事件
bun run calendar.ts create --subject "假期" --start "2024-12-25" --all-day

# 使用相对日期
bun run calendar.ts create --subject "跟进" --start tomorrow --end +1d

多配置文件支持

使用配置文件存储多个账户:

# 使用工作配置文件
bun run emails.ts list --profile work
bun run calendar.ts today --profile work

# 使用个人配置文件
bun run emails.ts list --profile personal

手动身份验证

用于显式身份验证管理(列出/删除配置文件):

# 列出所有配置文件
bun run ${CLAUDE_PLUGIN_ROOT}/skills/microsoft-graph/scripts/auth.ts --list

# 删除配置文件
bun run auth.ts --delete --profile old-account

# 使用自定义Azure AD应用进行身份验证
bun run auth.ts --client-id your-app-id --tenant-id your-tenant-id

令牌生命周期

令牌类型 生命周期 处理方式
访问令牌 ~1小时 自动刷新
刷新令牌 ~90天 过期时,脚本返回auth_required

用户仅在刷新令牌过期时(约90天)需要重新进行身份验证。

凭据存储

凭据存储在~/.config/api-skills/credentials.json

脚本参考

脚本 用途
emails.ts 邮件列表、阅读、搜索、发送和文件夹操作
calendar.ts 日历查看、搜索和创建操作
auth.ts 手动凭据管理(列出、删除配置文件)

附加资源

有关详细的API参考,请参阅:

  • references/graph-api.md - Microsoft Graph API端点和参数