Ich habe Probleme mit der serverseitigen Paging, mit der , um die nächste Seite von Daten aus Microsoft Graph abrufen, basierend auf den Informationen in this page. Ich verwende rohe GETs, wobei das Autorisierungstoken in der Kopfzeile gesetzt ist (dh ich verwende keine Sprach-API, ich versuche das von Powershell mit curl). Ich habe vertrauliche Daten aus den folgenden Snippets geschrubbt und sie durch x ersetzt, aber hoffentlich kommt die problematische Information rüber.Microsoft Graph NextLink funktioniert nicht
Zum ersten GET, ich Abfrage mit
https://graph.microsoft.com/beta/drives/b!Gxxxxx-xxxxxxge/root:/ReallyBigFolder:/children?top=200
und ich bekomme eine Antwort mit 200 Einzelteilen, wie erwartet. Das @odata.nextlink
Feld in dieser Antwort ist
https://graph.microsoft.com/beta/drives/b!Gxxxxx-xxxxxxge/root/children?top=200&$skiptoken=Paged%3dTRUE%26p_SortBehavior%3d0%26p_FileLeafRef%3d279%252ezip%26p_ID%3d208%26p_FileDirRef%3dMaintenance%2520Department%252fReallyBigFolder%26RootFolder%3dMaintenance%2520Department%252fReallyBigFolder
Für die Beispiele in der Microsoft Graph Dokumentation über verknüpft, der $skiptoken=...
Teil zufällig aussehenden Zahlen, aber ich hat $skiptoken=Paged=TRUE&etc
. Vielleicht hat die API die Antwort geändert, seit die Dokumentation geschrieben wurde, oder meine ist völlig inkorrekt.
Mein Verständnis aus der Dokumentation ist, dass ich in der Lage sein sollte, diese URL als undurchsichtiger Wert zu verwenden, und GET es von der Graph API (mit Auth Token natürlich) ohne Änderung. Allerdings, wenn ich dies tun, ist die Antwort
{"@odata.context":"https://graph.microsoft.com/beta/$metadata#drives('b%21Gxxxxx-xxxxxxge')/root/children","value":[]}
ist, wo ich erwarte weitere 200 Dateien aufgelistet zu bekommen, gibt es keine Dateien überhaupt zurück, und es scheint, den Weg gegangen ist, an die Wurzel zeigen eher als der Unterordner, wie er sein sollte.
Ich habe das auch in Graph Explorer mit den beiden /beta
und /v1.0
Endpunkten versucht, und es schlägt auf die gleiche Weise auch dort.
Wohin gehe ich falsch?
Bearbeiten mit Details zum Debuggen: Hinweis: Graph Explorer scheint nicht das Feld Datum aus Headern anzuzeigen, daher verwende ich Postman Chrome Plugin für diese Werte.
erste GET-Anfrage zu
beta/drives/b!xxx-xxxge/root:/Really%20Big%20Folder/ReallyBigFolder:/children
Mit Response-Header
Cache-Control →private
Content-Encoding →gzip
Content-Type →application/json;odata.metadata=minimal;odata.streaming=true;IEEE754Compatible=false;charset=utf-8
Date →Fri, 26 May 2017 19:07:54 GMT
Duration →2033.3889
OData-Version →4.0
Transfer-Encoding →chunked
Vary →Accept-Encoding
client-request-id →6faf5d1d-a291-410a-b269-f4667187d7cb
request-id →6faf5d1d-a291-410a-b269-f4667187d7cb
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"North Central US","Slice":"SliceB","ScaleUnit":"002","Host":"AGSFE_IN_11","ADSiteName":"CHI"}}
und Nextlink (etwas für die Sicherheit verschleierten)
https://graph.microsoft.com/beta/drives/b!xxx-xxxge/root/children?$skiptoken=Paged%3dTRUE%26p_SortBehavior%3d0%26p_FileLeafRef%3d279%252ezip%26p_ID%3d208%26p_FileDirRef%3dGSH%2520Test%252fMaintenance%2520Department%252fReally%2520Big%2520Folder%252fReallyBigFolder%26RootFolder%3d%252fGSH%2520Test%252fMaintenance%2520Department%252fReally%2520Big%2520Folder%252fReallyBigFolder
Nach der Nextlink-Header (unveränderte Header weggelassen erzeugt):
Date →Fri, 26 May 2017 19:15:17 GMT
Duration →512.9537
client-request-id →6ba61712-a423-4bc8-9376-cc62bf854329
request-id →6ba61712-a423-4bc8-9376-cc62bf854329
x-ms-ags-diagnostic →{"ServerInfo":{"DataCenter":"North Central US","Slice":"SliceA","ScaleUnit":"001","Host":"AGSFE_IN_7","ADSiteName":"CHI"}}
und resultierende Körper:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#drives('b%21xxxx-xxxxge')/root/children",
"value": []
}
Können Sie den Wert der „Request-ID“ Header und „Date“ Header auf den Antworten sind Sie von MS Graph zu bekommen? So können wir uns die Protokolle anschauen und sehen, was hier vor sich geht. –
@RyanGregg Kopfzeileninformationen, die in einer Bearbeitung der Frage enthalten sind. –
Danke Adam. Ich konnte bestätigen, dass ein Fehler darin besteht, wie nextLink für Abfragen an den Pfad/drives/zurückgegeben wird. Abfragen an/me/drive funktionieren normal. Wir arbeiten an einer Lösung. –