しょ〜うぃん広場

おもにTech系なブログ、ときどき個人的なブログ

GitHub Webhooks + Sinatra のJSON Parseでハマった

題名のとおりです。

いろんなサイトを見ていると GitHubのサイトに以下のようなSinatra向けのサンプルがあって…

post '/' do
  push = JSON.parse(params[:payload])
  "I got some JSON: #{push.inspect}"
end

とか書かれてたから、そのままやってみたんだけど どうもJSON.parseの部分で引っかかってうまくいかない。

と思ってGitHubのWebHookの説明サイトに行ったら、サンプルコードが変わっていた!!

post '/payload' do
  push = JSON.parse(request.body.read)
  puts "I got some JSON: #{push.inspect}"
end

JSON.parse(params[:payload])JSON.parse(request.body.read)に変えたらイケた。

Sinatra詳しくないし、JSONも詳しくないから、 どこのバージョン変更で動かなくなったのかよくわからないけど、 ここで2時間ぐらいハマったので、一応備忘録として残しておく。