Ich versuche, einen Outlook-Ordner (sagen Sie den Posteingang) mit der Beta-Version der Outlook Erholung Api see doc here
ich nur die Eigenschaft abrufen müssen synchronisieren IsRead und die PR_INTERNET_MESSAGE_ID
So folgende Dokumentation, für die erste Synchronisation sehen meine Anfragen wie:
die folgende Http-Header werden immer hinzugefügt:
request.Headers.Add("Prefer", "odata.track-changes");
request.Headers.Add("Prefer", "odata.maxpagesize=5"); //Use a small page size easier for debugging
Die erste vollständige Synchronisationsanforderung
https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))
Gute Ergebnisse die
value
Array enthalten, was ich brauche.Die zweite Anforderung nach der ersten Anforderung verwendet die deltatoken
https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead,Subject&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))&$deltatoken=a758b90491954a61ad463ef3a0e690a2
Bad Ergebnisse, keine SingleValueExtendedProperties Einträge
Nächste Anfragen für Seitenzahlen mit skiptoken ...
https://outlook.office365.com/api/beta/Me/MailFolders('inbox')/messages?$select=IsRead,Subject&$expand=SingleValueExtendedProperties($filter=(PropertyId eq 'String 0x1035'))&$skiptoken=e99ad10324464488b6b219ca5ed6be1c
Bad Ergebnisse wieder gleiche wie 2.
Es sieht aus wie ein Bug zu mir. Können Sie eine Problemumgehung bereitstellen? Aus einer Liste von ItemId ist es möglich, die Liste der entsprechenden PR_InternetMessage_Id effizient abrufen (nicht Artikel pro Artikel)?
Beachten Sie, dass auch in der Dokumentation steht geschrieben, dass:
Die Antwort beinhaltet ein Preference-Beworben: odata.track-Änderungen -Header. Wenn Sie versuchen, eine Ressource zu synchronisieren, die nicht unterstützt wird, wird dieser Header in der Antwort nicht zurückgegeben. Suchen Sie vor der Verarbeitung der Antwort nach diesem Header , um Fehler zu vermeiden.
Es scheint, dass für 2. und 3. Anrufe dieser Antwortheader "Preference-Applied" nicht festgelegt ist.
Danke für Ihre schnelle Antwort. Gibt es eine Problemumgehung, an die Sie denken könnten? Zum Beispiel eine 'effiziente' Anfrage, um eine Liste von 'PR_INTERNET_MESSAGE_ID' aus einer Liste von' ItemId' zu erhalten? –
'InternetMessageId' ist eine erstklassige Eigenschaft im Beta-Namespace. Könnten Sie das einfach verwenden, anstatt die erweiterte Eigenschaft zu verwenden? Etwas wie: "https://outlook.office365.com/api/beta/Me/MailFolders (" Posteingang ")/Nachrichten? $ Select = IsRead, InternetMessageId' –
Diese Problemumgehung funktioniert perfekt, vielen Dank. Könnten Sie das fehlende "Preference-Applied" auch im Antwortheader an das Entwicklerteam melden? –