site: delta
[アーティクル]
04/01/2024
5 人の共同作成者
フィードバック
この記事の内容
サイト コレクション全体の完全な読み取りを実行することなく、新しく作成、更新、または削除されたサイトを取得します。
サイト のデルタ 関数呼び出しは 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
、および $top
OData クエリ パラメーター もサポートされています。
ヘッダー
値
Authorization
ベアラー {token}。 必須です。
要求本文
このメソッドには、要求本文を指定しません。
応答
成功した場合、このメソッドは 200 OK
応答コードと、応答本文で site オブジェクトのコレクションを返します。
応答には、サイト オブジェクトのコレクションに加えて、次のいずれかのプロパティも含まれます。
名前
値
説明
@odata.nextLink
URL
現在のセットにさらに変更がある場合に、次に使用可能な変更ページを取得する URL。
@odata.deltaLink
URL
現在のすべての変更が返された後 、@odata.nextLink の代わりに返される URL。 このプロパティを使用して、今後の変更の次のセットを読み取ります。
場合によっては、サービスは、次のいずれかのエラー コードを含むエラー応答とLocation
、新しいデルタ列挙を開始する新しいnextLink
を含むヘッダーを含む応答コードを返410 Gone
します。 これは、サービスが特定のトークンの変更の一覧を提供できない場合に発生します。たとえば、クライアントが長時間切断された後に古いトークンを再利用しようとした場合や、サーバーの状態が変更され、新しいトークンが必要な場合などです。
完全な列挙が完了したら、返されたサイトをローカル状態と比較し、エラーの種類に基づいて指示に従います。
エラーの種類
手順
resyncChangesApplyDifferences
最後に同期したときに、サービスがローカルの変更で最新の状態であったと確信している場合は、ローカル サイトをサーバーからのバージョン (削除を含む) に置き換えます。 サーバーが把握していないすべてのローカル変更をアップロードします。
resyncChangesUploadDifferences
サービスが返さなかったローカル サイトをアップロードし、サーバーのバージョンと異なるサイトをアップロードします。 どちらのコピーが最新のものであるかわからない場合は、両方のコピーを保持します。
詳細については、「 Microsoft Graph のエラー応答とリソースの種類 」を参照してください。
例
例 1: 最初の要求
次の例は、最初の要求と、この API を呼び出してローカル状態を確立する方法を示しています。
要求
次の例は、最初の要求を示しています。
GET https://graph.microsoft.com/v1.0/sites/delta
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Sites.Delta.GetAsDeltaGetResponseAsync();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
delta, err := graphClient.Sites().Delta().GetAsDeltaGetResponse(context.Background(), nil)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
var result = graphClient.sites().delta().get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$result = $graphServiceClient->sites()->delta()->get()->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
graph_client = GraphServiceClient(credentials, scopes)
result = await graph_client.sites.delta.get()
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
応答
次の例は、変更の最初のページと、現在のサイト セットで使用可能なサイトがなくなったことを示す @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
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Sites.Delta.GetAsDeltaGetResponseAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Token = "1230919asd190410jlka";
});
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphsites "github.com/microsoftgraph/msgraph-sdk-go/sites"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestToken := "1230919asd190410jlka"
requestParameters := &graphsites.SitesDelta()RequestBuilderGetQueryParameters{
Token: &requestToken,
}
configuration := &graphsites.SitesDelta()RequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
delta, err := graphClient.Sites().Delta().GetAsDeltaGetResponse(context.Background(), configuration)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
var result = graphClient.sites().delta().get(requestConfiguration -> {
requestConfiguration.queryParameters.token = "1230919asd190410jlka";
});
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let delta = await client.api('/sites/delta?token=1230919asd190410jlka')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Sites\Delta\DeltaRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new DeltaRequestBuilderGetRequestConfiguration();
$queryParameters = DeltaRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->token = "1230919asd190410jlka";
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->sites()->delta()->get($requestConfiguration)->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
from msgraph.generated.sites.delta.delta_request_builder import DeltaRequestBuilder
graph_client = GraphServiceClient(credentials, scopes)
query_params = DeltaRequestBuilder.DeltaRequestBuilderGetQueryParameters(
token = "1230919asd190410jlka",
)
request_configuration = DeltaRequestBuilder.DeltaRequestBuilderGetRequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.sites.delta.get(request_configuration = request_configuration)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
応答
次の例は、ローカル状態を更新するための最初の要求とこの要求の間で、という名前 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": {}
}
]
}
例 3: デルタ リンク要求
一部のシナリオでは、最初にすべてのサイト、リスト、および Web を列挙せずに、現在 deltaLink
の値を要求できます。 これは、アプリが変更についてのみ知りたがっていて、既存のサイトについて知る必要がない場合に便利です。
最新deltaLink
の を取得するには、クエリ文字列パラメーター を指定して を呼び出しますdelta
?token=latest
。
メモ: リソースの完全なローカル表現を維持する場合は、初期列挙に を使用 delta
する必要があります。 delta
の使用は、必要とするデータのすべてを読み取ったことを保証する唯一の方法です。
要求
次の例は要求を示しています。
GET https://graph.microsoft.com/v1.0/sites/delta?token=latest
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Sites.Delta.GetAsDeltaGetResponseAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Token = "latest";
});
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphsites "github.com/microsoftgraph/msgraph-sdk-go/sites"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestToken := "latest"
requestParameters := &graphsites.SitesDelta()RequestBuilderGetQueryParameters{
Token: &requestToken,
}
configuration := &graphsites.SitesDelta()RequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
delta, err := graphClient.Sites().Delta().GetAsDeltaGetResponse(context.Background(), configuration)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
var result = graphClient.sites().delta().get(requestConfiguration -> {
requestConfiguration.queryParameters.token = "latest";
});
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let delta = await client.api('/sites/delta?token=latest')
.get();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Sites\Delta\DeltaRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new DeltaRequestBuilderGetRequestConfiguration();
$queryParameters = DeltaRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->token = "latest";
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->sites()->delta()->get($requestConfiguration)->wait();
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
from msgraph import GraphServiceClient
from msgraph.generated.sites.delta.delta_request_builder import DeltaRequestBuilder
graph_client = GraphServiceClient(credentials, scopes)
query_params = DeltaRequestBuilder.DeltaRequestBuilderGetQueryParameters(
token = "latest",
)
request_configuration = DeltaRequestBuilder.DeltaRequestBuilderGetRequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.sites.delta.get(request_configuration = request_configuration)
プロジェクトに SDK を追加 し、authProvider インスタンスを作成 する方法の詳細については、SDK のドキュメント を参照してください。
応答
次の例は応答を示しています。
HTTP/1.1 200 OK
Content-type: application/json
{
"value": [ ],
"@odata.deltaLink": "https://graph.microsoft.com/v1.0/sites/delta?token=1230919asd190410jlka"
}
関連項目