site: delta

サイト コレクション全体の完全な読み取りを実行することなく、新しく作成、更新、または削除されたサイトを取得します。

サイトデルタ関数呼び出しは GET 要求に似ていますが、これらの呼び出しの 1 つ以上に状態トークンを適切に適用することで、サイトの増分変更を照会できる点が異なります。 これにより、毎回サーバーからすべてのサイトをフェッチすることなく、ユーザーのサイトのローカル ストアを維持および同期できます。 アプリケーションは、パラメーターを指定せずに API を呼び出します。 サービスはサイトの列挙を開始し、これらのサイトへの変更のページを返します。 これには、@odata.nextLink または @odata.deltaLink が含まれます。 応答に @odata.deltaLink が存在するまで、アプリケーションは @odata.nextLink を使用して呼び出しを続ける必要があります。

すべての変更を受け取ったら、それらをローカル状態に適用できます。 今後の変更を監視するには、 前の応答@odata.deltaLink を使用してデルタ API を呼び出します。

削除済みとしてマークされたリソースは、ローカル状態から削除する必要があります。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。

アクセス許可の種類 最小特権アクセス許可 より高い特権のアクセス許可
委任 (職場または学校のアカウント) Sites.Read.All Sites.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション Sites.Read.All Sites.ReadWrite.All

HTTP 要求

GET /sites/delta

クエリ パラメーター

要求 URL には、次の省略可能なクエリ パラメーターを含めることができます。

パラメーター 種類 説明
token String 値が latestの場合、呼び出しは最新のデルタ トークンを含む空の応答を返します。 値が以前のデルタ トークンの場合、呼び出しは、そのトークンが発行されてから新しい状態を返します。

このメソッドでは、応答をカスタマイズするために、 $select$expand$topOData クエリ パラメーター もサポートされています。

要求ヘッダー

ヘッダー
Authorization ベアラー {token}。 必須です。 認証と認可についての詳細をご覧ください。

要求本文

このメソッドには、要求本文を指定しません。

応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文で site オブジェクトのコレクションを返します。

応答には、サイト オブジェクトのコレクションに加えて、次のいずれかのプロパティも含まれます。

名前 説明
@odata.nextLink URL 現在のセットにさらに変更がある場合に、次に使用可能な変更ページを取得する URL。
@odata.deltaLink URL 現在のすべての変更が返された後 、@odata.nextLink の代わりに返される URL。 このプロパティを使用して、今後の変更の次のセットを読み取ります。

場合によっては、サービスは、次のいずれかのエラー コードを含むエラー応答と、新しいデルタ列挙を開始する新しいnextLinkを含むLocation ヘッダーを含む410 Gone応答コードを返します。 これは、サービスが特定のトークンの変更の一覧を提供できない場合に発生します。たとえば、クライアントが長時間切断された後に古いトークンを再利用しようとした場合や、サーバーの状態が変更され、新しいトークンが必要な場合などです。

完全な列挙が完了したら、返されたサイトをローカル状態と比較し、エラーの種類に基づいて指示に従います。

エラーの種類 手順
resyncChangesApplyDifferences 最後に同期したときに、サービスがローカルの変更で最新の状態であったと確信している場合は、ローカル サイトをサーバーからのバージョン (削除を含む) に置き換えます。 サーバーが把握していないすべてのローカル変更をアップロードします。
resyncChangesUploadDifferences サービスが返さなかったローカル サイトをアップロードし、サーバーのバージョンと異なるサイトをアップロードします。 どちらのコピーが最新のものであるかわからない場合は、両方のコピーを保持します。

詳細については、「 Microsoft Graph のエラー応答とリソースの種類」を参照してください。

例 1: 最初の要求

次の例は、最初の要求と、この API を呼び出してローカル状態を確立する方法を示しています。

要求

次の例は、最初の要求を示しています。

GET https://graph.microsoft.com/v1.0/sites/delta

応答

次の例は、変更の最初のページと、現在のサイト セットで使用可能なサイトがなくなったことを示す @odata.nextLink プロパティを含む応答を示しています。 サイトのすべてのページが取得されるまで、アプリは引き続き @odata.nextLink の URL 値を要求する必要があります。

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "id": "contoso.sharepoint.com,da60e844-ba1d-49bc-b4d4-d5e36bae9019,712a596e-90a1-49e3-9b48-bfa80bee8740",
      "name": "teamSiteA"
    },
    {
      "id": "contoso.sharepoint.com,da60e844-ba1d-49bc-b4d4-d5e36bae9019,0271110f-634f-4300-a841-3a8a2e851851",
      "name": "teamSiteB"
    },
    {
      "id": "contoso.sharepoint.com,da60e844-ba1d-49bc-b4d4-d5e36bae9019,0271110f-634f-4300-a841-3a8a2e851851",
      "name": "teamSiteC"
    }
  ],
  "@odata.nextLink": "https://graph.microsoft.com/v1.0/sites/delta?token=1230919asd190410jlka"
}

例 2: 最後のページ要求

次の例は、セット内の最後のページにアクセスする要求と、この API を呼び出してローカル状態を更新する方法を示しています。

要求

次の例は、最初の要求の後の要求を示しています。

GET https://graph.microsoft.com/v1.0/sites/delta?token=1230919asd190410jlka

応答

次の例は、 All Company という名前のサイトが、ローカル状態を更新するための最初の要求とこの要求の間で削除されたことを示す応答を示しています。

サイトの最後のページには、現在のサイト セット以降の変更を取得するために後で使用できる URL を提供する @odata.deltaLink プロパティが含まれています。

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites",
    "@odata.deltaLink": "https://graph.microsoft.com/v1.0/sites/delta?$deltatoken=b2vm2fSuZ-V_1Gdq4ublGPD4lReifRNHYMGxkFf0yz2fTqr9U6jMyWv8hihThODJCO_5I7JbpAFLQAIOUzYXhCPl0jlQdjTC1o24iBe81xQyAWJOiP3q1xyMKjlfZUawWok3Njc_LIrrSgrdSydhsVCL6XYpRkYGJ9JDYxFMiJw2vUs1QC_S0cW6hqYQnOimeA918dQZwD8pJI9oUJryV2Ow-7Dj9p18p1I6pFg044k.xipVdgMKlOFIlXzPipsKzlFJbYUTD1sGiFiPe7uZA7Q",
    "value": [
        {
            "createdDateTime": "2024-03-11T02:36:04Z",
            "name": "All Company",
            "displayName": "All Company",
            "isPersonalSite": false,
            "id": "bd565af7-7963-4658-9a77-26e11ac73186",
            "root": {}
        }
    ]
}

一部のシナリオでは、最初にすべてのサイト、リスト、Web を列挙せずに、現在の deltaLink 値を要求できます。 これは、アプリが変更についてのみ知りたがっていて、既存のサイトについて知る必要がない場合に便利です。 最新のdeltaLinkを取得するには、クエリ文字列パラメーター ?token=latest を使用して delta を呼び出します。

手記: リソースの完全なローカル表現を維持する場合は、初期列挙に delta を使用する必要があります。 delta の使用は、必要とするデータのすべてを読み取ったことを保証する唯一の方法です。

要求

次の例は要求を示しています。

GET https://graph.microsoft.com/v1.0/sites/delta?token=latest

応答

次の例は応答を示しています。

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [ ],
  "@odata.deltaLink": "https://graph.microsoft.com/v1.0/sites/delta?token=1230919asd190410jlka"
}

関連項目