#ruby
https://sendgrid.kke.co.jp/docs/API_Reference/Webhooks/event.html
ここで「こんなデータを送ります」ってところに書いてあった例がこんな感じだった。
# イベントPOSTの例
[
{
"sg_message_id":"sendgrid_internal_message_id",
"email": "john.doe@sendgrid.com",
"timestamp": 1337197600,
"smtp-id": "<4FB4041F.6080505@sendgrid.com>",
"event": "processed"
},
{
"sg_message_id":"sendgrid_internal_message_id",
"email": "john.doe@sendgrid.com",
"timestamp": 1337966815,
"category": "newuser",
"event": "click",
"url": "https://sendgrid.com"
},
{
"sg_message_id":"sendgrid_internal_message_id",
"email": "john.doe@sendgrid.com",
"timestamp": 1337969592,
"smtp-id": "<20120525181309.C1A9B40405B3@Example-Mac.local>",
"event": "group_unsubscribe",
"asm_group_id": 42
}
]
一番下に「こんな感じでcurlからPOSTのテストできるよ」って書いてあった。
$ curl -X POST -H "Content-Type: application/json" -d '[{"email":"john.doe@sendgrid.com","timestamp":1337197600,"smtp-id":"<4FB4041F.6080505@sendgrid.com>","event":"processed"},{"email":"john.doe@sendgrid.com","timestamp":1337966815,"category":"newuser","event":"click","url":"https://sendgrid.com"},{"email":"john.doe@sendgrid.com","timestamp":1337969592,"smtp-id":"<20120525181309.C1A9B40405B3@Example-Mac.local>","event":"processed"}]'
なるほど。
rails力が低くてどうやってkeyの無いデータを受け取ればよいのかわからなかったので、色々試して結局下記で受け取ることに。
params = request.body.read
events = JSON.parse(params)