WebhooksHaken in Ihre App über eine Rückruf-URL Sie zur Verfügung stellen. Dies ist nur eine Aktion in einem Ihrer Controller, die auf POST Anfragen reagiert und die Webhook-Anfrage behandelt. Jedes Mal, wenn sich etwas am Remotedienst ändert, stellt der Remotedienst eine Anforderung an die von Ihnen angegebene Rückruf-URL, wodurch der Code Aktion ausgelöst wird.
Ich werde beispielhaft mit der Umfrage erstellt Ereignis. Sie beginnen mit der Definition einer Rückrufaktion Aktion für dieses Ereignis, bei der Sie die Anforderung bearbeiten, die vom Webhook stammt. Wie here angegeben reagiert die Webhook mit dem folgenden Aufbau:
survey_creator_name=&survey_name=MADE+A+NEW+SURVEY&[email protected]&survey_url=http%3A%2F%2Fexample.com%2Fsurveys%2Fbob%2Fmade-a-new-survey%2F``
Lassen Sie sich die Header für jetzt verlassen, sie nicht wichtige Informationen enthalten. Die verfügbaren Körperparameter (survey_creator_name
, survey_name
usw.) werden alle Details bezüglich der neuen Umfrage wiedergeben, die auf dem Remote-Dienst verfügbar ist. Also lassen Sie uns bitte Rückruf Aktion, die diese Anforderung verarbeitet:
class HooksController
def survery_created_callback
# If the body contains the survey_name parameter...
if params[:survery_name].present?
# Create a new Survey object based on the received parameters...
survey = Survey.new(:name => params[:survey_name]
survey.url = params[:survey_url]
survey.creator_email = params[:survey_creator_email]
survey.save!
end
# The webhook doesn't require a response but let's make sure
# we don't send anything
render :nothing => true
end
end
Lassen Sie uns die Route für dieses Add (in config/routes.rb
):
scope '/hooks', :controller => :hooks do
post :survey_created_callback
end
Dadurch wird die POST /hooks/survey_created_callback
Route ermöglicht.
Jetzt müssen Sie diese Rückruf-URL bei der Webhooks-API abonnieren. Zuerst möchten Sie wissen, which hooks stehen Ihnen zur Verfügung. Sie tun dies, indem Sie eine GET-Anforderung an /api/v2/webhooks/
platzieren. In der Antwort finden Sie die Ereignisname, Umfrage und Sammler Parameter.
Schließlich Sie subscribe einem der zuvor genannten Haken durch eine Anfrage an die POST /api/v2/webhooks/subscribe/
URL mit folgendem Inhalt platzieren:
{
"subscription_url": "http://your-absolute-url.com/hooks/survey_created_callback",
"event": "[EVENT NAME FROM THE HOOKS LIST]",
"survey": "[SURVEY FROM THE HOOKS LIST]",
"collector": "[COLLECTOR FROM THE HOOKS LIST]"
}
Die Antwort auf diese ein Code 201
sein wird, wenn der Haken erfolgreich erstellt wurde oder Code 409
, wenn bereits ein Webhook für dieselbe Callback-URL existiert. Oder etwas anderes, wenn das schief ging :)
Sie können jetzt den Hook testen, indem Sie eine Umfrage für den Remote-Dienst erstellen und dann sehen, wie er in Ihrer Rails-App repliziert wird.
Hope this helps ...
Auf der Gefahr ein Ruck: „Ich bin nicht vertraut mit' thing' aber ich fühle mich wie es das Richtige für mich ist“scheint, wie der falsche Ansatz zu Technologie Entscheidungen. Diese Frage könnte besser gestellt werden als "Ich muss ein Ziel erreichen, was ist die beste Lösung?". – Nick