add-office365 について
Power Apps プロジェクトに Office 365 Outlook のデータソースを追加し、操作を設定して TypeScript のビルドを確認するスキルです。生成されたサービスの予定表、メール、連絡先のメソッドを扱います。
主な機能
- 01既存の Outlook 接続を確認
- 02Office 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 を追加する
ワークフロー
- メモリーバンクを確認 -> 2. コネクタを追加 -> 3. 生成されたサービスを確認 -> 4. 設定 -> 5. ビルド -> 6. メモリーバンクを更新
ステップ 1:メモリーバンクを確認する
memory-bank.md の指示に従って、memory-bank.md を確認します。
ステップ 2:コネクタを追加する
まず、接続 ID を確認します(connector-reference.md を参照):
/list-connections スキルを実行します。出力から Office 365 Outlook の接続を探します(API 名に office365 が含まれています)。該当する接続がない場合は、環境固有の接続 URL を使って作成するようユーザーに案内します。現在の環境 ID(power.config.json または前の手順から取得)をもとに URL を組み立てます:https://make.powerapps.com/environments/<environment-id>/connections → + 新しい接続 → コネクタを検索 → 作成。
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 を更新し、追加したコネクター、設定した操作、ビルドのステータスを記録してください。