Mit Webhooks mit Schienen
Ich bin nicht vertraut mit Webhooks aber ich habe das Gefühl, dass Sie das richtige für meine app.
Habe ich folgende Unterlagen für FluidSurveys webhook
Verstehe ich, wie kann ich die webhook durch eine POST
Anfrage an Ihren API
, aber ich weiß nicht, wie kann ich feststellen, wo der webhook ist eigentlich Los, zum senden der Antwort.
Kann ich weitergeben, Abonnement-url, die ich will? z.B. https://www.myapp.com/test
und ist, wo webhook
senden der Daten? Auch nach der webhook
erstellt, ich bin mir nicht sicher, wie Sie Sie, um sicherzustellen, dass meine Rails-app erhalten die Antwort, dass eingeleitet wird.
Ich nehme an, einer controller-Methode entspricht der url, die ich auf die webhook.
Wenn ich richtig bin auf der Steuerung Umgang mit dem webhook, wie würde das Aussehen?
Jede Beratung wird sehr geschätzt.
thing
aber ich fühle es ist das richtige für mich" scheint der falsche Ansatz zu Technologie-Entscheidungen. Diese Frage vielleicht besser gestellt werden als "ich brauchen, um zu erreichen goal
, was ist die beste Lösung?".InformationsquelleAutor Luigi | 2014-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Webhooks Haken in Ihrer app über eine callback URL, den Sie bieten. Dies ist nur eine action in einem eigenen Controller, der reagiert auf POST - Anfragen und übernimmt die webhook-request. Jedes mal, wenn etwas änderungen an der remote service der remote service macht eine Anfrage an die callback-URL für Sie bereitgestellt, damit die Auslösung der Aktion code.
Werde ich beispielhaft mit der Umfrage erstellt Veranstaltung. Beginnen Sie mit der Definition einer Rückruf Aktion für dieses Ereignis, wo Sie die Verarbeitung der Anforderung aus der webhook. Wie gesagt hier der webhook antwortet mit der folgenden Körper:
Lassen wir die Header für jetzt, Sie enthalten keine wichtigen Informationen. Der verfügbare Körper-Parameter (
survey_creator_name
,survey_name
etc.) spiegeln alle details zur neuen Umfrage auf der remote-service. Also schreiben wir eine Rückruf-Aktion , verarbeitet diese Anfrage:Fügen wir die route für diesen (in
config/routes.rb
):Damit wird die
POST /hooks/survey_created_callback
route.Nun müssen Sie abonnieren diese callback URL der Webhooks-API. Zuerst möchten Sie wissen, die Haken stehen Ihnen zur Verfügung. Sie tun dies, indem Sie eine GET-Anforderung an
/api/v2/webhooks/
. In der Antwort finden Sie die event name, Umfrage und Sammler Parameter.Schließlich, Sie abonnieren zu einem der zuvor aufgeführten Haken, indem eine Anforderung an den
POST /api/v2/webhooks/subscribe/
URL mit dem folgenden Inhalt:Die Antwort auf das wird ein code
201
wenn der hook erfolgreich erstellt wurde, oder der code409
, wenn ein webhook für die gleichen callback-URL ist bereits vorhanden. Oder etwas anderes, wenn diese schlecht ging 🙂Können Sie nun testen, der Haken, durch die Schaffung einer Umfrage über den remote-service und dann sehen, wie es immer repliziert in Ihrer Rails-app.
Hoffe, das hilft...
Wenn Sie sagte "abonnieren einen Haken", meinst du das Handwerk eine URL mit der json-Inhalt oben gezeigt wird, und geben Sie die URL in einen browser die Adresse bar?
die Endpunkt-zu abonnieren webhook ist, in diesem Fall ein POST-endpoint. bei der Eingabe einer URL in die Adressleiste Ihres Browsers Sie eine GET-Anforderung. Ich würde vorschlagen, Sie gehen ein bisschen tiefer in die Unterschiede zwischen GET und POST-requests (Lesen über PUT-und DELETE-würde auch nicht Schaden). aber ein großer Unterschied ist, dass GET-Anfragen (in der Regel) nicht akzeptieren, ein Körper. das Stück von JSON-es sollte in den request-body (POST-request).
So... verwenden Sie curl zu tun, eine POST-Anforderung über terminal?
ja, LOCKE oder eine http-Bibliothek, Ihre Lieblings-Programmiersprache. Sie können auch ein browser-plugin wie Postman (Chrome), um POST-Anfragen.
InformationsquelleAutor lipanski