Microsoft Graph で SharePoint サイトを開く
Microsoft Graph の SharePoint API は、以下の基本的なシナリオをサポートしています。
- SharePoint サイト、リスト、およびドライブ (ドキュメント ライブラリ) へのアクセス
- サイト リソースの読み取り専用サポート (新しいサイトは作成できません)
- リスト、listItem および driveItem の読み取り/書き込みサポート
- テナント レベルの SharePointSettings の読み取り/書き込みサポート
- SharePoint ID、URL、または相対パスでリソースを指定する
SharePoint API は、次の 3 つの主要なリソースの種類を公開します。
次に、listItem リソースの例を示します。
{
"fields": {
"Title": "Access card",
"Employee": "Ryan Gregg",
"EmployeeId": "10",
"CardSerial": "01235492",
"Alias": "RGregg",
"ID": 1,
"ContentType": "Item",
"Modified": "2016-09-19T23:15:25-07:00",
"Created": "2016-09-19T23:15:25-07:00"
},
"createdBy": {
"user": {
"id": "b757fdcb-0271-4807-b243-504139e4ba04",
"displayName": "Ryan Gregg"
}
},
"createdDateTime": "2016-09-20T06:15:25Z",
"eTag": "48e941c3-9515-4c48-9760-c07c90c79d48,1",
"id": "4",
"lastModifiedBy": {
"user": {
"id": "b757fdcb-0271-4807-b243-504139e4ba04",
"displayName": "Ryan Gregg"
}
},
"lastModifiedDateTime": "2016-09-20T06:15:25Z",
}
リソースでは、次の異なる 3 つの方法でデータを公開します。
- プロパティ (id や name など) は単純な値を公開します。
- ファセット(フィールド や createdBy など) は複雑な値を公開します。
- 参照 (items など) はその他のリソースのコレクションを指します。
?expand=fields
などの expand クエリ パラメーターで、URL 内の参照を展開することができます。
?select=id,name
などの select クエリ パラメーターで、特定のプロパティやファセットを要求することができます。
既定では、プロパティとファセットはほとんどが返されるのに対し、参照はいずれも表示されません。
効率を高めるには、注目すべきデータだけに select と expand を返すことをお勧めします。
SharePoint API のルート リソース
以下は、https://graph.microsoft.com/v1.0
に関する例です。
パス | 説明 |
---|---|
/sites/root | 組織の既定のサイト |
/sites/{site-id} | ID を使って特定のサイトにアクセスする |
/sites/{site-id}/drive | 指定したサイトの既定のドライブ (ドキュメント ライブラリ) にアクセスする |
/sites/{site-id}/drives | サイトの下にあるドライブ (ドキュメント ライブラリ) を列挙する。 |
/sites/{site-id}/sites | サイトの下のサブサイトを列挙する。 |
/sites/{site-id}/lists | サイトの下のリストを列挙する。 |
/sites/{site-id}/lists/{list-id}/items | リストの下の listItem を列挙する。 |
/groups/{group-id}/sites/root | グループのチーム サイトにアクセスする |
/admin/sharepoint/settings | 組織の管理者レベルの 設定にアクセスします。 |
サイトは、SharePoint ホスト名を使用してパスでアドレス指定することもできます。その後にコロンとサイトへの相対パスが続きます。 必要に応じて、最後に別のコロンを配置することで、リソース モデルのアドレス指定に戻ることができます。
パス | 説明 |
---|---|
/sites/contoso.sharepoint.com:/teams/hr | https://contoso.sharepoint.com/teams/hr に関連付けられているサイト |
/sites/contoso.sharepoint.com:/teams/hr:/drive | このサイトの既定のドライブにアクセスする |
既存の SharePoint 開発者向けのメモ
Microsoft Graph の SharePoint API は、CSOM API と大きく異なる点がいくつかあります。
サイト リソースは SPWeb
にマッピングされます。
サイト コレクションのルート サイト (SPWeb
) には、SPSite
に関する情報を含む siteCollection ファセットが含まれています。
サイトの ID はそのサイト コレクション内でのみ一意であり、ID でサイトを指定する場合、サイト コレクション識別子とサイト識別子の両方を指定する必要があります。
GET https://graph.microsoft.com/v1.0/sites/{hostname},{spsite-id},{spweb-id}/
ホスト名のみを使用して構築された URL は、既定のサイト コレクション内のルート サイト (SPWeb
) を指します。
GET https://graph.microsoft.com/v1.0/sites/{hostname}
ホスト名と siteCollection (SPSite
) ID のみを使用して構築された URL は、指定されたサイト コレクション内のルート サイト (SPWeb
) を指します。
GET https://graph.microsoft.com/v1.0/sites/{hostname},{spsite-id}
siteCollection (SPSite
) ID のみを使用して構築された URL は、指定されたサイト コレクション内のルート サイト (SPWeb
) を指します。
GET https://graph.microsoft.com/v1.0/sites/{spsite-id}
SharePoint REST v1 API URL から Microsoft Graph API URL へのマッピング
次の例は、SharePoint REST v1 API URL パターンに精通している開発者が、ユース ケースを同様の Microsoft Graph API URL パターンに適応させるのに役立ちます。
パターン 1
指定した SPWeb
URL に関連付けられているサイトにアクセスします。
GET https://graph.microsoft.com/v1.0/sites/{hostname}:/{site-server-relative-url}
例 1
次の例では、 SPWeb
URL https://contoso.sharepoint.com/teams/hr/benefits
に関連付けられているサイトに関する情報を返します。
benefits
は、https://contoso.sharepoint.com/teams/hr
にあるサイト コレクション (SPSite
) 内のSPWeb
であることに注意してください。
GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/teams/hr/benefits
パターン 2
次のコンポーネントに関連付けられているリスト アイテムにアクセスします。
コンポーネント | 説明 |
---|---|
{hostname} | サイトのホスト名。 |
{site-server-relative-url} | サイトのサーバー相対 URL (SPWeb )。 |
{list-id} | サイト内のリスト (SPList ) の GUID ID。 |
{item-id} | リスト内のリスト アイテム (SPListItem ) の GUID または整数 ID。 |
次の例は、前のコンポーネントを含む要求を示しています。
GET https://graph.microsoft.com/v1.0/sites/{hostname}:/{site-server-relative-url}:/lists/{list-id}/items/{item-id}
例 2
次の例では、GUID ID 5771e865-4e91-48b8-a0de-35a25d4e52fe
を持つリストに属する整数 ID 42
を持つSPListItem
に関する情報を返します。 この一覧は、 SPWeb
URL https://contoso.sharepoint.com/teams/hr/benefits
に関連付けられているサイトに属しています。
GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/teams/hr/benefits:/lists/5771e865-4e91-48b8-a0de-35a25d4e52fe/items/42