が、私は410を得る:見通しREST API 410エラー:メッセージを同期するときSyncStateNotFound
{\"code\":\"SyncStateNotFound\",\"message\":\"The sync state
generation is not found; generation=1;[highest=4][4][2][3].\"}
選択アカウントの選択mailfoldersのメッセージを同期するときにのみ発生します。関連デルタトークンを使用してポストイニシャル同期を行うときに発生します。
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$deltaToken={delta_token}
MicrosoftのOutlook Sandboxでは、これを再作成できます。ここで
は、それが決定的に再現するのにかかる文字通りの手順です。
1)最初のメッセージ同期:
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages
2)同期初期デルタトークンを持つ:
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$deltaToken={delta_token}
3)同期デルタトークンまでスキップトークン:
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$skipToken={skip_token}
4)ここでエラーが発生します:Mailfolderは更新を受信するので、(3)のデルタトークンとメッセージを再同期します。以下の呼び出しは410をスローし、メッセージを同期できません。
GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id}')/messages/?$deltaToken={delta_token}
これを繰り返す:私はこれをOutlookサンドボックス内のテストだけに分けて、それでも発生します。 (3)のdeltaTokenと対応するfolderIdをクエリパラメータとして使用して、GET呼び出しを同期させる(つまり、perform(2)を行う)ようにテストします。
コードサンプルやその他の関連情報を提供する必要があります。 – RasmusW
@RasmusW FYI上記のAPIコールを使ってメッセージを同期させる際には、最初の同期呼び出しでdeltaTokenを使用します( 'GET https://outlook.office365.com/api/v2.0/me/MailFolders('{folder_id) ')/ messages') –
これは奇妙なことですが、私は同じエラーを出し始めましたが、それを再現することはできません。デルタトークンを渡しても、常にトークンに基づいて200を取得します。 –