2017-08-07 4 views
4

Ich habe Probleme beim Starten eines Microsoft Graph Webhook-Abonnements (insbesondere für ein Postfach). Beim Starten der Subskription scheint Microsoft alle Parameter zu akzeptieren, die ich zum Konfigurieren der Subskription sende, aber die Subskription schlägt fehl, weil sie eine Antwort vom Typ non 2xx von dem konfigurierten Endpunkt empfängt.Microsoft Graph Webhook fehlt ClientState

Der Grund, warum mein Endpunkt eine 401 zurück an Microsoft sendet, ist, weil ihr POST, der das Abonnementvalidierungstoken enthält, den clientState fehlt.

Ich verwende das clientState Schlüssel-Wert-Paar, um die gesamte Kommunikation zwischen Microsoft und meinem Endpunkt zu authentifizieren. Wenn mein Endpunkt den korrekten clientState nicht anzeigt, gibt er 401 zurück.

Irgendwelche Ideen, was ich vermisse oder ob ich das anders machen sollte? Meiner Meinung nach ist es nicht möglich, dass mein Endpunkt nicht authentifizierte GET/POSTs akzeptiert.

Beispiel Anfrage Körper POST-Methode einschließlich der API-Schlüssel in der Kopfzeile mit:

{ 
    "changeType": "created", 
    "clientState": "testClientState", 
    "resource": "users/<UserName>/messages", 
    "expirationDateTime": "2017-08-10T10:24:57.0000000Z", 
    "notificationUrl": "<EndpointURL>" 
} 

Fehler von Microsoft Retour:

"error": { 
    "code": "InvalidRequest", 
    "message": "Subscription validation request failed. Must respond with 200 OK to this request.", 
    "innerError": { 
     "request-id": "adf7fc7b-6b14-4422-8526-c1391be8dd27", 
     "date": "2017-08-07T16:24:59" 
    } 
} 

ich alles verstehen, wie beabsichtigt zu arbeiten, bis mein Endpunkt gesendet wird die Validierungs-Token, weil ich das Validierungs-Token erhalte, mein Endpunkt dies jedoch ablehnt, weil der Client-Status fehlt.

Endpoint Log Snippet:

queryStringParameters": { 
    "validationToken": "<ValidationToken sent by Microsoft>" 
} 

ich meine API Endpunktlogik bin stützen einiger Microsofts Entwicklerhandbücher aus. Speziell für die Abonnementerstellung bin ich using this guide.

Es scheint, dass diese Frage also asked but not answered on GitHub war.

Antwort

1

Ich vertrete Microsoft Graph Web Haken Team ...

Wir überprüften Ihre Anfrage in unseren MS Graph-Service-Protokollen und bestätigten, dass es wegen des HTTP-Statuscode im Abonnement Validierungsphase gescheitert war = ‚Unerlaubte‘ aus dem Endpunkt ... Bis zu diesem Punkt ist alles nach Ihrer Beobachtung korrekt ...

MS Graph Web Hooks senden per Entwurf den ClientState-Header nicht als Teil der Abonnementvalidierungsanforderung. Bitte erwarten Sie nicht für diesen Header während der Abonnement-Validierung.

Weitere Informationen

  1. würden Sie erwartet haben die clientState als Teil des Validierungs Request-Header zu empfangen, weil Office365 Graph sendet https://msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations. Office 365 Graph unterscheidet sich von MS Graph ...
  2. Es gibt einige Dokument Verbesserungen bei dieser Frage bei https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/subscription_post_subscriptions beobachtet ... Beispiel Publisher Notification Payload, die nach dem erfolgreichen Abonnement ist zusammen mit der Abonnement-Validierung erwähnt ... Wir haben diese behoben.
+0

Bitte bestätigen: Hat meine Antwort Ihre Frage beantwortet? –

Verwandte Themen