Ich habe Schwierigkeiten, zwischen der absurden Menge an widersprüchlichen API-Dokumentationen von Microsoft zu unterscheiden: outlook.office.com, outlook.office365.com, Microsoft Graph, Azure und so weiterAnzahl der Kontakte aus Outlook abrufen Office-REST-API - JavaScript
Ich habe erfolgreich authentifiziert und Kontakte gezogen, aber ich kann nicht scheinen zu zählen, wann ich Paginierung stoppen sollte.
Ich habe mit:
Access Token url:
https://login.microsoftonline.com/common/oauth2/v2.0/token;
Successful Contact url:
https://outlook.office.com/api/v2.0/me/contacts;
Ihre REST API Resource sagt, ich sollte einen Anruf zu tätigen, um https://outlook.office.com/api/v2.0/me/contacts/$count
zu einfach in der Lage sein, aber dies hält -1
einen Klartext MIME-Typ mit dem Körper zurück.
Wenn jemand schon einmal damit zu kämpfen hat oder weiß was los ist, würde ich mich über einen Punkt in die richtige Richtung freuen - und hoffentlich ein paar einfache Punkte für Sie!
EDIT: Dank Jason unten für seine hilfreiche Unterstützung. Mit der Sandbox ich in der Lage war, das Problem mit dem folgenden zu reproduzieren:
Gespeichert in meinem Konto -> Empfangene Zugriffstoken -> Made einen GET-Aufruf https://outlook.office.com/api/v2.0/me/contacts/$count
Anforderungsheader:
GET https://outlook.office.com/api/v2.0/me/contacts/$count HTTP/1.1
Accept: text/*, application/xml, application/json; odata.metadata=none
User-Agent: PlayGroundAgent/1.0
Authorization: Bearer [standard-access-token]
client-request-id: 8f605[client-id-obscured-for-security]7289
X-AnchorMailbox: [email-address-removed-for-security on stackOverflow]
Antwort
HTTP/1.1 200 OK
Transfer-Encoding: chunked
request-id: de95eaa8-95a7-40bb-b0f9-ced7270f0433
X-CalculatedBETarget: SN1PR05MB1998.namprd05.prod.outlook.com
X-BackEndHttpStatus: 200
OData-Version: 4.0
X-DiagInfo: SN1PR05MB1998
X-BEServer: SN1PR05MB1998
X-FEServer: SN1PR0501CA0035
X-MSEdge-Ref: Ref A: 657E0491C29D46978D8DD3B01B9F93A3 Ref B: DDDD64A109F4E842A8213F038BFDD5FA Ref C: Fri Aug 19 09:20:05 2016 PST
Cache-Control: private
Date: Fri, 19 Aug 2016 16:20:05 GMT
Set-Cookie: exchangecookie=6ca5fc4df96e458e8b879de61aa574ef; expires=Sat, 19-Aug-2017 16:20:05 GMT; path=/; HttpOnly
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
-1
2nd Edit: Es sieht aus wie https://outlook.office.com/api/v2.0/me/contacts?$count=true
gibt auch @odata.count": -1
zurück, auch wenn es gültiges Array von Kontakten zurückgibt.
3. Edit: Arbeits Version (gleiche Methode wie die Fehler, die oben verwendet wurde) Url: https://outlook.office.com/api/v2.0/me/contacts/ zählen $
Anforderungsheader:
GET https://outlook.office.com/api/v2.0/me/contacts/$count HTTP/1.1
Accept: text/*, application/xml, application/json; odata.metadata=none
User-Agent: PlayGroundAgent/1.0
Authorization: Bearer [access-token]
client-request-id: a7954db3-[client-id]-7a6e2e74dd9c
X-AnchorMailbox: [same-email-as-above]
Antwort:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
request-id: 8c5db16b-3023-4968-9bdc-3d5ecac12ecb
X-CalculatedBETarget: SN1PR05MB1998.namprd05.prod.outlook.com
X-BackEndHttpStatus: 200
OData-Version: 4.0
X-DiagInfo: SN1PR05MB1998
X-BEServer: SN1PR05MB1998
X-FEServer: SN1PR0501CA0019
X-MSEdge-Ref: Ref A: 0574E46DB720491FBCEF23B73428F191 Ref B: FA4529229719F069B9D019E4D53E9200 Ref C: Fri Aug 19 09:42:55 2016 PST
Cache-Control: private
Date: Fri, 19 Aug 2016 16:42:55 GMT
Set-Cookie: exchangecookie=63a1de916a4c48be88569f05ce0361a7; expires=Sat, 19-Aug-2017 16:42:55 GMT; path=/; HttpOnly
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
29
Hope diese Hilfe!
Danke für das Zeigen auf diese Sandbox. Es ist beruhigend zu sehen, dass es aussieht, als ob ich den gleichen Authentifizierungspfad (basierend auf den URLs) wie die Sandbox verwende. Das erste Mal, als ich es ausprobierte, ja, es gab eine Zählung zurück, aber ein paar nachfolgende Versuche produzierten auch die "-1"! Nicht sicher, was der gemeinsame Faden noch ist, der den Fehler auslöst ... Zu einem verwandten Hinweis, danke für Ihre Hilfe bei der Paginierung, meine Sorge ist, dass dies mich nur vorwärts und rückwärts beschränkt, ich möchte Seite zeigen Zahlen, die es einem Benutzer erlauben würden, von Seite 1 nach 4 zu springen, aber ich müsste wissen, dass Seite 4 tatsächlich existiert. – SuperSephy
Ja, in diesem Fall würden Sie die Zählung benötigen. Wenn Sie es in der Sandbox reproduzieren können, würde es Ihnen etwas ausmachen, die vollständige Antwort (einschließlich Header) zu posten? Ich würde es gerne von unseren Entwicklern ausführen. –
Ja, es scheint ein bisschen hit and miss. Meine App hat es geschafft, die Zählung für ungefähr 2 Anrufe zu erhalten, und dann zurück zu "-1", ohne irgendwelche Änderungen. Ich kann die Sandbox gelegentlich auch zum Absturz bringen. Antworten sind zu lang, um in Kommentare zu passen, daher werde ich die Frage bearbeiten. – SuperSephy