1

Outlook Rest Api のベータ版を使用して Outlook フォルダー (受信トレイなど) を同期しようとしています。こちらのドキュメントを参照してください。

プロパティIsReadPR_INTERNET_MESSAGE_IDを取得するだけで済みます

したがって、ドキュメントに従って、最初の同期の場合、私のリクエストは次のようになります。

次の Http ヘッダーは常に追加されます。

  request.Headers.Add("Prefer", "odata.track-changes");
  request.Headers.Add("Prefer", "odata.maxpagesize=5"); //Use a small page size easier for debugging
  1. 最初の最初の完全同期要求

    https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))

    良い結果value配列には必要なものが含まれています。

  2. 最初のリクエストの後の 2 番目のリクエストはデルタトークンを使用します

    https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead,Subject&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))&$deltatoken=a758b90491954a61ad463ef3a0e690a2

    悪い結果、SingleValueExtendedProperties エントリなし

  3. skiptokenを使用したページネーションの次のリクエスト...

    https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead,Subject&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))&$skiptoken=e99ad10324464488b6b219ca5ed6be1c

    2と同じように、再び悪い結果。

私にはバグのように見えます。回避策を提供できますか? ItemId のリストから、対応する PR_InternetMessage_Idリストを効率的に (アイテムごとではなく)簡単に取得できますか?

ドキュメントには、次のように書かれていることにも注意してください。

応答には、Preference-Applied: odata.track-changes ヘッダーが含まれます。サポートされていないリソースを同期しようとすると、このヘッダーは応答で返されません。エラーを回避するために、応答を処理する前にこのヘッダーを確認してください。

2. と 3. の呼び出しには、この応答ヘッダー「Preference-Applied」が設定されていないようです。

4

1 に答える 1

1

現在、同期機能は拡張プロパティをサポートしていません。ただし、これを有効にするために取り組んでおり、数週間で機能し始めるはずです。

編集: PR_INTERNETMESSAGE_ID の非常に特殊なケースの回避策については、以下のコメントを参照してください。

于 2016-05-03T17:18:09.430 に答える