关于 add-office365
此技能用于向 Power Apps 项目添加 Office 365 Outlook 数据源、配置操作并检查 TypeScript 构建。内容涵盖生成服务中的日历、邮件和联系人方法。
主要功能
- 01查找现有 Outlook 连接
- 02添加 Office 365 Outlook 连接器
- 03涵盖日历和邮件操作
- 04查阅生成服务的方法
- 05构建并记录项目状态
适用场景
- 01添加日历事件查询或编辑
- 02实现邮件发送或回复
- 03构建前查阅 Outlook 服务方法
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ microsoft/ power-platform-skills --skill add-office365安装后在 Claude Code 中输入/add-office365确认已加载。
详细介绍
📋 共享说明:shared-instructions.md - 跨领域注意事项。
添加 Office 365 Outlook
工作流
- 检查 Memory Bank → 2. 添加连接器 → 3. 检查生成的服务 → 4. 配置 → 5. 构建 → 6. 更新 Memory Bank
步骤 1:检查 Memory Bank
根据 shared-instructions.md 检查是否存在 memory-bank.md。
步骤 2:添加连接器
首先,查找连接 ID(参见 connector-reference.md):
运行 /list-connections 技能。在输出中找到 Office 365 Outlook 连接(API 名称包含 office365)。如果不存在,请引导用户使用特定于环境的 Connections URL 创建连接 — 根据上下文中的活动环境 ID(来自 power.config.json 或前面的步骤)构造该 URL:https://make.powerapps.com/environments/<environment-id>/connections → + New connection → 搜索连接器 → Create。
pa app add data-source --connector office365 -c <connection-id>
步骤 3:检查生成的服务
生成的服务文件(src/generated/services/Office365OutlookService.ts)很大。使用 Grep 查找特定方法,不要读取整个文件:
Grep pattern="async \w+" path="src/generated/services/Office365OutlookService.ts"
常用方法(按使用频率排序):
日历操作
| 方法 | 用途 | 关键参数 |
|---|---|---|
GetEventsCalendarViewV2 | 获取指定日期范围内的事件 | calendarId、startDateTimeOffset、endDateTimeOffset |
V3CalendarPostItem | 创建日历事件 | table(日历 ID)、item(CalendarEventHtmlClient) |
CalendarDeleteItem | 删除事件 | table(日历 ID)、id(事件 ID) |
CalendarPatchItem | 更新事件 | table、id、item |
V2CalendarGetTables | 列出可用日历 | (无) |
电子邮件操作
| 方法 | 用途 | 关键参数 |
|---|---|---|
SendEmailV2 | 发送电子邮件 | emailMessage(正文、收件人、主题等) |
GetEmails | 获取收件箱邮件 | folderPath、fetchOnlyUnread、top |
GetEmail | 获取单封邮件 | messageId |
MarkAsRead | 将邮件标记为已读 | messageId |
ReplyToV3 | 回复邮件 | messageId、body |
Flag / Unflag | 标记/取消标记邮件 | messageId |
联系人操作
| 方法 | 用途 |
|---|---|
GetContactFolders | 列出联系人文件夹 |
ContactGetTables | 列出联系人表 |
第 4 步:配置
询问用户需要哪些 Office 365 Outlook 操作(如果调用方已指定,则跳过)。
日历 -- 获取日期范围内的事件:
import { Office365OutlookService } from "../generated/services/Office365OutlookService";
const result = await Office365OutlookService.GetEventsCalendarViewV2(
"Calendar", // calendarId -- "Calendar" for default
startDate.toISOString(),
endDate.toISOString()
);
const events = result.data?.value || [];
日历 -- 创建事件:
await Office365OutlookService.V3CalendarPostItem("Calendar", {
Subject: "Focus Time",
Start: "2025-06-15T10:00:00", // ISO 8601 format
End: "2025-06-15T11:00:00",
ShowAs: "Busy",
Importance: "Normal",
IsAllDay: false,
Body: "<p>Blocked for focus work</p>",
Reminder: 5
});
日历 -- 删除事件:
await Office365OutlookService.CalendarDeleteItem("Calendar", eventId);
电子邮件 -- 发送电子邮件:
await Office365OutlookService.SendEmailV2({
To: "<recipient-address>",
Subject: "Subject line",
Body: "<p>HTML email body</p>",
Importance: "Normal"
});
关键类型:
| 类型 | 用途 |
|---|---|
CalendarEventClientReceiveStringEnums | 读取模型 -- 包含 Subject、Start、End、Id、ShowAs、IsAllDay、Organizer |
CalendarEventHtmlClient | 写入模型 -- 必须包含 Subject、Start、End;Body、ShowAs、Importance、Reminder 可选 |
EntityListResponse_CalendarEventClientReceiveStringEnums | 响应包装器 -- 通过 .value 访问事件 |
响应模式:
const result = await Office365OutlookService.GetEventsCalendarViewV2(...);
if (result.success) {
const events = result.data?.value || [];
} else {
console.error("Failed:", result.error);
}
第 5 步:构建
npm run build
继续之前,先修复 TypeScript 错误。暂时不要部署。
第 6 步:更新记忆库
在 memory-bank.md 中更新:已添加的连接器、已配置的操作、构建状态。