mcpField
A
add-office365

add-office365

github.com/microsoft生产力1.1k290 次安装今天更新
代码仓库

关于 add-office365

此技能用于向 Power Apps 项目添加 Office 365 Outlook 数据源、配置操作并检查 TypeScript 构建。内容涵盖生成服务中的日历、邮件和联系人方法。

主要功能

  1. 01查找现有 Outlook 连接
  2. 02添加 Office 365 Outlook 连接器
  3. 03涵盖日历和邮件操作
  4. 04查阅生成服务的方法
  5. 05构建并记录项目状态

适用场景

  1. 01添加日历事件查询或编辑
  2. 02实现邮件发送或回复
  3. 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

工作流

  1. 检查 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 中更新:已添加的连接器、已配置的操作、构建状态。

评论

支持 Markdown