2016-05-03 8 views
1

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 
  1. 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.

  2. 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

  3. 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.

Antwort

1

Die Synchronisierungsfunktion unterstützt heute keine erweiterten Eigenschaften. Wir arbeiten jedoch daran, dies zu ermöglichen, und es sollte in ein paar Wochen funktionieren.

EDIT: Für eine Abhilfe für den Sonderfall des PR_INTERNETMESSAGE_ID Blicks auf den Kommentar unten.

+0

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? –

+1

'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' –

+0

Diese Problemumgehung funktioniert perfekt, vielen Dank. Könnten Sie das fehlende "Preference-Applied" auch im Antwortheader an das Entwicklerteam melden? –