내 앱은 HelloSign API에서 이벤트 데이터가 포함 된 제 3 자 POST 콜백을받습니다.레일즈가 JSON으로 POST 요청을 처리합니다.
문제는 json을 "내부"에서 파싱하고 데이터를 저장하지 못하는 것입니다. [: JSON] : PARAMS로부터받은
class HelloSignController < ApplicationController
def receives_data
j = params[:json]
logger.info('THIS IS JSON: ' + j)
respond_to do |format|
format.json { render json: "Hello API Event Received",
status: :ok }
end
end
end
이벤트 데이터는
{
"event": {
"event_type": "signature_request_sent",
"event_time": "1394642012",
"event_hash": "xxxxx"
},
"account_guid": null,
"client_id": "xxxx",
"signature_request": {
"signature_request_id": "xxxxxxx",
"title": "Review Agreement",
"original_title": "Review Agreement",
"message": null,
"test_mode": true,
"is_complete": false,
"final_copy_uri": "/v3/signature_request/final_copy/xxxxx",
"files_url": "https://api.hellosign.com/apiapp.php/v3/signature_request/files/xxxxx",
"details_url": "https://www.hellosign.com/home/manage?locate=xxxxx",
"requester_email_address": "xxxxxxx",
"signatures": [
{
"signature_id": "xxxxx",
"has_pin": false,
"signer_email_address": "[email protected]",
"signer_name": "admin",
"order": null,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": null
}
]
}
}
어떻게 "J"는 "EVENT_TYPE"를 예를 들어 "signature_request_id을"저장을 구문 분석 할 수 있습니까?
감사 또한
:이 콘솔에서 실제 콜백입니다 :Started POST "/hs_callback" for 127.0.0.1 at 2014-03-12 13:32:38 -0400
Processing by HelloSignController#receives_data as */*
Parameters: {"json"=>"{\"event\":{\"event_type\":\"signature_request_sent\",\"event_time\":\"1394645254\",\"event_hash\":\"xxxxx\",\"event_metadata\":{\"related_signature_id\":\"\",\"reported_for_account_id\":null,\"reported_for_app_id\":\"xxxxx\",\"event_message\":null}},\"account_guid\":null,\"client_id\":\"xxxxx\",\"signature_request\":{\"signature_request_id\":\"xxxx\",\"title\":\"Review Agreement\",\"original_title\":\"Review Agreement\",\"subject\":null,\"message\":null,\"test_mode\":true,\"is_complete\":false,\"has_error\":false,\"custom_fields\":[],\"response_data\":[],\"signing_url\":null,\"signing_redirect_url\":null,\"final_copy_uri\":\"\\/v3\\/signature_request\\/final_copy\\/xxxxxx\",\"files_url\":\"https:\\/\\/api.hellosign.com\\/apiapp.php\\/v3\\/signature_request\\/files\\/xxxxxxx\",\"details_url\":\"https:\\/\\/www.hellosign.com\\/home\\/manage?locate=xxxxxx\",\"requester_email_address\":\"[email protected]cc\",\"signatures\":[{\"signature_id\":\"xxxxx\",\"has_pin\":false,\"signer_email_address\":\"[email protected]\",\"signer_name\":\"xxxxxxx\",\"order\":null,\"status_code\":\"awaiting_signature\",\"signed_at\":null,\"last_viewed_at\":null,\"last_reminded_at\":null}],\"cc_email_addresses\":[]}}"}
JSON.parse가 마술입니다! 감사 – jakeed1