私は RoR を初めて使用し、その場で学んでいます。そうは言っても、フォームスタックからスクリプトに送信された POST リクエストを解析しようとしています。URL に移動してスクリプトを表示および実行できますが、問題なく動作します。Formstack の Webhook を URL に向けても、何も起こりません。コマンド ラインから以下の curl リクエストを実行したところ、404 エラーが返されました。
curl -H "Content-Type: application/json" -d '{"FormID":"1234","UniqueID":"1234","Name":{"first":"John","last":"Smith"},"Email":"test@gmail.com","Phone":"(555) 555-555","Company":"Test Company"}' -X POST "http://scripturl.com"
requestb.inで送信中のデータを確認したところ、正常に送信されています。では、JSON データが送信されているときに 404 エラーが返されるのに、ブラウザーで表示すると問題なく実行されるのはなぜでしょうか? 私のサンプルコードは以下です。
firstName = params[:Name]["first"]
lastName = params[:Name]["last"]
email = params["Email"]
company = params["Company"]
phone = params["Phone"]
client.create('contact', firstname: firstName, lastname: lastName, emailaddress1: email, subject: "Test", companyname: company, mobilephone: phone)
log/production.log の内容は次のとおりです。
rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
railties (4.2.3) lib/rails/engine.rb:518:in `call'
railties (4.2.3) lib/rails/application.rb:165:in `call'
passenger (5.0.13) lib/phusion_passenger/rack/thread_handler_extension.rb:94:in `process_request'
passenger (5.0.13) lib/phusion_passenger/request_handler/thread_handler.rb:157:in `accept_and_process_next_request'
passenger (5.0.13) lib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
passenger (5.0.13) lib/phusion_passenger/request_handler.rb:415:in `block (3 levels) in start_threads'
passenger (5.0.13) lib/phusion_passenger/utils.rb:111:in `block in create_thread_and_abort_on_exception'