Office 365/Outlook 连接器,支持邮件(读取/发送)、日历(读取/写入)和联系人(读取/写入),采用弹性的 OAuth 认证。现已支持多账户,可在单一技能中管理多个 Microsoft 365 身份。解决 Office 365 邮件、日历和联系人连接的难题。使用 Microsoft Graph API,提供完整的 Azure 应用注册设置指南。非常适合在 OpenClaw 中访问 Microsoft 365/Outlook 数据。
Office 365 Connector(多账户增强).是一项面向实际任务的技能,主要用于Overview. 这种技能提供了与Office 365/Outlook服务(包括电子邮件、日历和联系人)的弹性、生产准备连接。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
本技能提供面向生产环境的、高可用的 Office 365 / Outlook 服务连接能力,支持电子邮件、日历和联系人等核心功能。现支持多账户管理(v2.0.0),您可在单次技能安装下统一管理多个 Microsoft 365 身份(如工作账号、个人账号、顾问账号等)。
该技能通过提供 OAuth 认证、自动令牌刷新、按账户隔离的会话管理,以及详尽的 Azure 应用注册配置指南,有效解决了自动化工具连接 Office 365 的常见难题。
适用场景:
v2.0.0 新增特性:多账户支持!完整使用说明请参阅 MULTI-ACCOUNT.md。
致谢:由 Matthew Gordon(matt@workandthrive.ai)增强开发 —— 完整致谢信息详见 CREDITS.md。
Matthew Gordon 主导的重大增强:
--account=name 参数完整版本历史请参阅 CHANGELOG.md。
cd skills/office365-connector # 添加账户 node accounts.js add workyou@work.com "Work account" # 认证登录 node auth.js login --account=work
# 添加个人账户 node accounts.js add personalyou@outlook.com "Personal" # 添加顾问账户 node accounts.js add consulting you@client.com "Consulting" # 设置默认账户 node accounts.js default work # 列出全部账户 node accounts.js list
# 查看工作日历 node calendar.js today --account=work # 读取个人邮件 node email.js recent 10 --account=personal # 使用顾问账户发送邮件 node send-email.js send client@example.com "Subject" "Body" --account=consulting
已在使用 v1.0.0?完全无需担心!
# 导入现有配置 node accounts.js import-legacy # 继续无变更使用(环境变量仍有效) # 或新增其他账户 node accounts.js add secondary
使用本技能前,您 必须 完成 Azure 应用注册配置,以获取以下三项凭证:
配置耗时:约每账户 10–15 分钟
完整分步操作指南请参阅 Setup Guide。
本技能需以下 委派权限(需用户授权同意):
Mail.Read —— 读取用户邮件Mail.ReadWrite —— 对用户邮件进行读写操作Mail.Send —— 以用户身份发送邮件Calendars.Read —— 读取用户日历Calendars.ReadWrite —— 对用户日历进行读写操作Contacts.Read —— 读取用户联系人Contacts.ReadWrite —— 对用户联系人进行读写操作User.Read —— 登录并读取用户个人资料offline_access —— 持久访问数据(用于刷新令牌)重要提示:在执行配置前,请确认您已充分理解并接受上述权限。每一项权限均授予对您的 Microsoft 365 数据的特定访问权限。
各权限具体作用说明请参阅 Permissions Reference。
账户信息存储于 ~/.openclaw/auth/office365-accounts.json,令牌文件存于 ~/.openclaw/auth/office365/ 目录下。
使用 accounts.js CLI 工具进行管理:
node accounts.js list # 列出全部账户 node accounts.js add... # 添加账户 node accounts.js remove # 删除账户 node accounts.js default # 设为默认账户
单账户模式下仍支持环境变量配置:
export AZURE_TENANT_ID="your-tenant-id" export AZURE_CLIENT_ID="your-client-id" export AZURE_CLIENT_SECRET="your-client-secret"
或在 OpenClaw 配置中声明:
{
"env": {
"vars": {
"AZURE_TENANT_ID": "your-tenant-id",
"AZURE_CLIENT_ID": "your-client-id",
"AZURE_CLIENT_SECRET": "your-client-secret"
}
}
}
本技能采用 OAuth 2.0 设备代码流(Device Code Flow) 实现高可靠性认证:
令牌存储:令牌安全存储于 ~/.openclaw/auth/office365/,文件权限设为 0600(仅属主可读写)。
# 从默认账户读取 node email.js recent 10 # 从指定账户读取 node email.js recent 10 --account=work # 在顾问账户中搜索 node email.js search "proposal" --account=consulting # 使用对应身份发送 node send-email.js send client@example.com "Update" "..." --account=consulting
# 查看工作日历 node calendar.js today --account=work # 查看个人日历 node calendar.js week --account=personal
# 列出所有已配置账户 node accounts.js list # 检查认证状态 node auth.js status --account=work # 如需重新认证 node auth.js login --account=work
适用于跨多个组织协作的典型场景:
# 上午:检查全部日历 node calendar.js today --account=work node calendar.js today --account=consulting node calendar.js today --account=startup # 按身份处理邮件 node email.js recent --account=work node email.js recent --account=consulting # 使用对应账户发送 node send-email.js send client@bigcorp.com "Proposal" "..." --account=work
# 工作时段:使用工作账户 node calendar.js today --account=work node email.js recent --account=work # 下班后:使用个人账户 node email.js recent --account=personal
本技能内置健壮的错误处理机制,覆盖以下场景:
Microsoft Graph API 存在如下速率限制:
本技能自动处理限频响应,并采用指数退避策略。
“未指定账户且未设置默认账户”
# 设置默认账户 node accounts.js default work # 或始终显式指定 --account= node calendar.js today --account=work
“账户未找到”
# 列出可用账户 node accounts.js list # 添加缺失账户 node accounts.js add
认证已过期
# 检查状态 node auth.js status --account=work # 重新认证 node auth.js login --account=work
“AADSTS700016:目录中未找到应用程序”
“AADSTS65001:用户未授权”
“AADSTS700082:刷新令牌已过期”
“403 Forbidden”
详细排障指南请参阅 Setup Guide 和 MULTI-ACCOUNT.md。
node accounts.js list # 列出全部账户 node accounts.js add[email] [desc] node accounts.js remove # 删除账户 node accounts.js default # 设为默认账户 node accounts.js import-legacy # 导入 v1.0.0 配置
node auth.js login [--account=name] # 认证登录 node auth.js status [--account=name] # 检查认证状态 node auth.js token [--account=name] # 获取访问令牌
node email.js recent [count] [--account=name] node email.js search "query" [--account=name] node email.js from email@domain [--account=name] node email.js read[--account=name]
node calendar.js today [--account=name] node calendar.js week [--account=name]
node send-email.js send[--account=name] node send-email.js reply [--account=name] node cancel-event.js [comment] [--account=name]
原始技能:ClawHub 社区发布的 office365-connector v1.0.0
多账户增强版(v2.0.0):Matthew Gordon(matt@workandthrive.ai)
衷心感谢 Matthew Gordon 贡献多账户增强功能,使本技能对顾问、自由职业者及任何需管理多个工作身份的用户更具实用价值!
完整致谢信息请参阅 CREDITS.md。
本技能保持与原始版本许可证的兼容性。具体条款详见 CREDITS.md。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习