add-sharepoint について
Power AppsプロジェクトにSharePointデータソースを追加するスキルです。リストの再利用や作成、サイトとリストの確認、コネクター設定を案内し、Graph API認証、列の仕様、ビルド確認も扱います。
主な機能
- 01リストの再利用、拡張、新規作成の計画
- 02Graph API認証の設定
- 03アクセス可能なサイトとリストの確認
- 04リストやライブラリをコネクターとして追加
- 05ビルドとプロジェクト記録の更新
活用シーン
- 01既存のSharePointリストをアプリに接続
- 02アプリ用SharePointリストの設計と作成
- 03接続、サイト、リスト設定の確認
- 04統合変更後のTypeScriptビルド実行
MCP 対応
READMEにはMCPとの関係について記載されていません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ microsoft/ power-platform-skills --skill add-sharepointインストール後、Claude Code で/add-sharepointを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-authentication-reference.mdlist-management-reference.mdsharepoint-reference.md詳細
📋 共有指示:shared-instructions.md - 横断的な注意事項です。
参考資料:
- sharepoint-reference.md - 列のエンコード、選択肢フィールド、ルックアップ、API のパターン(重要)
- api-authentication-reference.md - Graph API 認証、トークン、サイト ID
- list-management-reference.md - リストと列のクエリ、作成、拡張
SharePoint の追加
2 つの方法があります:既存のリスト(手順 6 に進む)または新しいリスト(全ワークフロー)。
ワークフロー
- メモリーバンクを確認 → 2. 計画 → 3. Graph API 認証を設定 → 4. 既存のリストを確認 → 5. リストを作成 → 6. 接続 ID を取得 → 7. サイトを検出 → 8. テーブルを検出 → 9. コネクタを追加 → 10. 設定 → 11. ビルド → 12. メモリーバンクを更新
手順 1:メモリーバンクを確認
shared-instructions.mdに従ってmemory-bank.mdを確認します。
手順 2:計画
ユーザーに次のことを尋ねます。
- 必要な SharePoint リストはどれですか?
- リストはサイトにすでに存在しますか?それとも新しく作成する必要がありますか?
リストがすでに存在する場合: 手順 6 に進みます。
新しいリストを作成する場合:
- 必要なデータについて尋ね、適切なスキーマを設計します
- 可能であれば既存のリストを再利用します(重複させないでください)
EnterPlanModeで計画モードに入り、列と種類を含むリストの設計を提示しますExitPlanModeで承認を得ます
手順 3:Graph API 認証を設定(リストを作成する場合)
詳細については、api-authentication-reference.mdを参照してください。
az account show # Verify Azure CLI logged in
$api = Initialize-SharePointGraphApi -SiteUrl "https://<tenant>.sharepoint.com/sites/<site-name>"
$headers = $api.Headers
$siteId = $api.SiteId
Sites.Manage.All の権限が必要です。
手順 4:既存のリストを確認(リストを作成する場合)
作成する前に、必ず既存のリストをクエリしてください:
$existingLists = Invoke-RestMethod -Uri "https://graph.microsoft.com/v1.0/sites/$siteId/lists?`$select=id,displayName,description,list&`$filter=list/hidden eq false" -Headers $headers
Find-SimilarLists、Compare-ListSchemas、Get-ListSchema関数については、list-management-reference.mdを参照してください。
AskUserQuestionで確認結果をユーザーに提示します。
- 再利用できるリスト(列が一致するリストがすでに存在する)
- 拡張が必要なリスト(存在するが列が不足している)
- 作成が必要なリスト(一致するリストが見つからない)
手順 5:リストを作成(リストを作成する場合)
作成する前に、明示的な確認を得てください。list-management-reference.mdの安全な関数を使用します。
New-SharePointListIfNotExistsAdd-SharePointColumnIfNotExistsAdd-SharePointLookupColumn(リスト間の参照に使用)
手順 6:接続 ID を取得
SharePoint Online の接続 ID を見つけます(connector-reference.mdを参照)。
/list-connectionsスキルを実行します。出力から SharePoint Online の接続を見つけます。見つからない場合は、環境固有の[Connections]URL を使って作成するようユーザーに案内します。コンテキスト内のアクティブな環境 ID(power.config.jsonまたは前の手順から取得)を使って、次のように URL を組み立てます:https://make.powerapps.com/environments/<environment-id>/connections → + 新しい接続 → コネクタを検索 → 作成。
手順 7:サイトを検出
ユーザーがアクセスできる SharePoint サイトを一覧表示します。
pa connector list-datasets --connector sharepointonline -c <connection-id>
サイトをユーザーに提示し、接続するサイトを尋ねます。ユーザーがすでにサイト URL を指定している場合は、一覧に表示されていることを確認します。
pa connector list-datasetsが失敗する、または結果が返されない場合:
- 認証エラー:
pa auth logoutを実行します(power-appsのみのプロジェクトではpower-apps logoutを実行)。その後、再試行します。CLI からブラウザーでのログインが再度求められます。 - 空のリスト:接続 ID が SharePoint Online の接続を指していることと、ユーザーが少なくとも 1 つのサイトにアクセスできることを確認します。確認後もリストが空の場合は、そこで停止します。
- その他のゼロ以外の終了コード:エラー出力をそのまま報告します。停止します。
ステップ 8:テーブルを確認する
選択した各サイトについて、利用可能なリストとドキュメントライブラリを一覧表示します。
pa connector list-tables --connector sharepointonline -c <connection-id> -d '<site-url>'
pa connector list-tables が失敗するか、結果が返されない場合:
- ステップ 7 のサイト URL が正確であることを確認します(出力からコピーし、再入力しないでください)。
- それでも結果が空の場合、そのサイトのリストにアクセスする権限がない可能性があります。ユーザーに SharePoint のアクセス許可を確認するよう依頼します。
- その他のゼロ以外の終了コードの場合:エラー出力を正確に報告します。停止してください。
テーブルをユーザーに提示し、追加したいものを尋ねます。ユーザーの用途に関連していそうなテーブルを提案します(memory bank のコンテキスト、またはユーザーが明示した要件に基づきます)。ステップ 5 でリストを作成した場合、ここに表示されるはずです。
ステップ 9:コネクターを追加する
SharePoint は表形式のデータソースです。-c(接続 ID)、-d(サイト URL)、--table(リスト名)が必要です。
pa app add data-source --connector sharepointonline -c <connection-id> -d '<site-url>' --table '<table-name>'
ユーザーが選択した各リストまたはライブラリに対して、コマンドを実行します。-d(データセット)にはステップ 7 の SharePoint サイト URL を指定し、--table にはステップ 8 のリスト/ライブラリ名を指定します。
ステップ 10:設定する
SharePoint のコードを書く前に、sharepoint-reference.md を読んでください。列のエンコード、選択肢フィールド、ルックアップには重要な注意点があります。
一般的な操作:
// Get items from a SharePoint list
const items = await SharePointOnlineService.GetItems({
dataset: "https://contoso.sharepoint.com/sites/your-site",
table: "Your List Name"
});
// Create a new list item
await SharePointOnlineService.PostItem({
dataset: "https://contoso.sharepoint.com/sites/your-site",
table: "Your List Name",
item: {
Title: "New Item",
Description: "Item description",
Status: "Active"
}
});
// Get files from a document library
const files = await SharePointOnlineService.ListFolder({
dataset: "https://contoso.sharepoint.com/sites/your-site",
id: "Shared Documents" // Library name or folder ID
});
// Get file content
const content = await SharePointOnlineService.GetFileContent({
dataset: "https://contoso.sharepoint.com/sites/your-site",
id: "file-server-relative-url"
});
重要なポイント:
datasetは常に SharePoint サイトの完全な URL ですtableはリスト操作で使用するリストの表示名です- API のリスト列名は表示名と異なる場合があります(スペースは
_x0020_に、特殊文字はエンコードされます) - ドキュメントライブラリの操作では、フォルダー/ファイル ID またはサーバー相対 URL を使用します
- 選択肢列には整数の選択肢コードではなく、文字列値を使用します(Dataverse とは異なります)
Grep を使って src/generated/services/SharePointOnlineService.ts 内の特定のメソッドを検索します(生成されたファイルは非常に大きい場合があります。connector-reference.md を参照してください)。
ステップ 11:ビルドする
npm run build
先に進む前に TypeScript のエラーを修正してください。まだデプロイしないでください。
ステップ 12:Memory Bank を更新する
memory-bank.md を更新し、追加したコネクター、サイト URL、設定または作成したリスト/ライブラリ、ビルドの状態を記録します。