Dies ist der Ruby-Code ich ein Abonnement in Microsoft Graph erstellen bin mit:Microsoft Graph Webhook: Abonnement-Überprüfungsanforderung abgelaufen
subscribe_endpoint = URI("https://graph.microsoft.com/v1.0/subscriptions")
http = Net::HTTP.new(subscribe_endpoint.host, subscribe_endpoint.port)
http.use_ssl = true
tomorrow = Date.today + 1
subscribe_request = "{
\"changeType\": \"created,updated\",
\"notificationUrl\": \"https://my_url/api/v1/outlook/o365notification\",
\"resource\": \"https://stackoverflow.com/users/#{params[:o365account_id]}/events?$filter=Extensions/any(f:f/id eq 'Microsoft.OutlookServices.OpenTypeExtension.meeteor_event')\",
\"expirationDateTime\": #{(Time.now + 1.day).to_json},
\"clientState\": \"SecretClientState\"
}"
subscribe_response = http.post(
"/v1.0/subscriptions",
subscribe_request,
'Authorization' => "Bearer #{params[:o365account_access_token]}",
'Content-Type' => 'application/json'
)
es funktionierte großartig, aber plötzlich heute erhalte ich eine Antwort Subscription validation request timed out
. Auch wenn ich einen POST an https://my_url/api/v1/outlook/o365notification
mache, funktioniert es gerade gut.
Irgendwelche Ideen, warum es aufhörte zu arbeiten, wenn sich nichts auf meiner Seite änderte?
Könnte es sein, dass Punkte auf meiner Entwicklungsumgebung und ist oft offline, wurde die Domain verboten?
Aber die POST auf die gleiche URL mit Fiddler funktioniert (auch außerhalb von meinem Netzwerk) funktioniert die ganze Zeit. Und wenn mein Endpunkt 200 ohne das Validierungs-Token zurückgibt, würde die Fehlerreaktion vom Subskriptionsendpunkt anders sein als die Zeitüberschreitungsnachricht, die ich erhalte. Es sieht so aus, als ob die POST-Anfrage nicht an der angegebenen URL ausgeführt wird. –
Ich habe eine E-Mail an Ihr Google Mail-Konto gesendet. Lassen Sie uns offline nachgehen, um zu vermeiden, Ihre Serverdetails offenzulegen. –
Wenn jemand interessiert ist: Nach unserem Offline-Follow-up stellte sich heraus, dass es sich um ein Verbindungsproblem handelte, nachdem mein Endpunkt auf einem Cloud-Dienst bereitgestellt wurde, funktionierte es. Für Endpunkte, die auf Dev-Maschinen zeigen, wird ngrok vorgeschlagen. –