Ich führe eine einfache Sinatra-App, in der ich einige Daten abfragen und einen POST über JSON an eine Webhook-URL zur Verarbeitung senden muss. Ich bin mir nicht sicher, wie ich die Datensätze, die ich für HTTParty abgerufen habe, richtig formatiere.Ergebnisse der ActiveRecord-Abfrage können nicht über HTTParty gesendet werden.
Die Kontakte werden nach /account/{account_id}/contacts.json gedruckt, wie ich sie möchte, sie werden gerade nicht erfolgreich gesendet.
app.rb
get "/account/:account_id/contacts.json" do
@contacts = Contact.where("sfid = ?", params[:account_id])
HTTParty.post("https://hooks.webapp.com/hooks/catch/387409/1us4j3/",
{
:body => [ @contacts ].to_json,
:headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json'}
})
@contacts.to_json
end
Zunächst einmal gibt es einen Unterschied, wie Daten werden gedruckt "@ contacts.to_json" und wie sie gesendet werden "[@contacts] .to_json". Es kann das Problem sein. Aber wenn es nicht so ist, brauchen wir mehr Informationen darüber, wie sicher Sie sind, dass es nicht gesendet wird. –
'where' gibt bereits ein Array an die Variable '@ contacts' zurück. Der Typ von '@ contacts' ist also bereits ein Array. Ich glaube nicht, dass es notwendig ist, vor der Konvertierung zu json wieder in Array zu konvertieren. ': body => @ contacts.to_json' ist in Ordnung. – Mayank
@ AndréGuimarãesSakata Ich bin sicher, dass es nicht gesendet wird, weil ich eine Testroute habe, die sendet HTTParty.post ("https://hooks.webapp.com/hooks/catch/387409/1us4j3/", { ): Körper => [{: name => 'wert1',: datenschutz => 'wert2'}] .to_json, : headers => {'Inhaltstyp' => 'application/json', 'Accept' => 'application/json '} }) erfolgreich und wird vom Webhook abgefangen. Der Code, den ich in meiner Frage geschrieben habe, wird nicht erwischt. – csakon