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 つの方法でデータを公開します。

  • プロパティ (idname など) は単純な値を公開します。
  • ファセット(フィールドcreatedBy など) は複雑な値を公開します。
  • 参照 (items など) はその他のリソースのコレクションを指します。

?expand=fields などの expand クエリ パラメーターで、URL 内の参照を展開することができます。 ?select=id,name などの select クエリ パラメーターで、特定のプロパティやファセットを要求することができます。 既定では、プロパティとファセットはほとんどが返されるのに対し、参照はいずれも表示されません。 効率を高めるには、注目すべきデータだけに selectexpand を返すことをお勧めします。

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