2016-03-21 8 views
1

ich Office365 bin mit und versuchen, Nachrichtenanzahl in Mail-Ordner mit dem folgenden Powershell-Befehl zu erhalten:Office365 Outlook REST API Enthält alle Nachrichten nicht zurück

(Invoke-RestMethod -Method get -Uri ("https://outlook.office365.com/api/beta/me//Messages/") -Credential $UserCredential).Count 

Mailbox Ich verwende hat 598 Meldungen über jedoch der Befehl insgesamt 10

nur zurück, wenn ich einen anderen Ansatz und verwenden Sie den folgenden Befehl I 266 Meldungen erhalten würde:

Invoke-RestMethod -Method get -Uri ("https://outlook.office365.com/api/beta/me//Messages/`$count") -Credential $UserCredential 

gibt es eine Möglichkeit alle t zu erhalten Er meldet rekursiv in Office365 mithilfe der REST-API, und wenn ja, was mache ich falsch?

Art

Yuriy

+0

könnten Sie versuchen, die Nextlink zu durchlaufen alle Nachrichten –

Antwort

2

API me/messages die Nachrichten auf einmal wird nicht zurückkehren betrifft, so ist die Standardlänge 10.

Um alle Nachrichten zu bekommen, Sie $top and $skip verwenden können.

Zum Beispiel: me/Messages?$top=20 erhalten die Top 20 Nachrichten, me/Messages?$skip=20&$top=20 wird die nächsten 20 Nachrichten erhalten.

+0

zu erhalten, die groß ist, ich danke Ihnen so sehr. Gibt es eine Möglichkeit, Nachrichten rekursiv über alle Ordner zu erhalten? Wo finde ich außerdem alle über Office365 über die REST-API akzeptierten Parameter? Ich finde es nicht möglich, MSDN zu überspringen und zu überspringen. Vielen Dank im Voraus! –

+0

Es scheint das Beste, was ich für $ oben bekommen kann, ist 500. Aber was, wenn ich brauche Nachrichten zu verarbeiten 7000+? –

+0

@Yuriy, in diesem Fall können Sie $ überspringen verwenden, um die nächsten 500 Nachrichten zu bekommen, zum Beispiel, wenn Sie 1500 Meldungen haben, können Sie 3-mal fordern. $ skip und $ top sind odata URI-Konvertierungen. Ich werde meine Antwort aktualisieren, um das Odatendokument –