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.
Bitte bestätigen: Hat meine Antwort Ihre Frage beantwortet? –