LINE Botをつくりたく、下記RubyプログラムをHerokuのURLにアクセスするという形で実行したところ、

callback.rb:19:in `<main>': undefined method `[]' for nil:NilClass (NoMethodError)

とのエラーが発生しました。
どのメソッドが未定義?Nil?なのでしょうか。そして、どうすれば解決するのでしょうか。

いっぽうLINE側のWebhook URLにherokuのurlを登録してVERIFYすると、

A http status of the response was '503 Service Unavailable'.

というエラーが返ってきます。
これは上のundefined methodエラーが原因なのでしょうか?

ソースコードはこのサイトを参考にしました。
http://qiita.com/mix_dvd/items/b0065d9adb8f486838c4

#!/usr/local/bin/ruby
# encoding: utf-8

# ライブラリの読込
require 'cgi'
require 'json'
require 'line/bot'

# CGIの生成
$cgi = CGI.new()

# 送信されたデータの整形
params = {}
$cgi.params.each {|key, val|
  params = JSON.parse(key)
}

# 返信に必要な情報の取得
replyToken = params["events"][0]["replyToken"]
msgType = params["events"][0]["message"]["type"]

if msgType == "sticker" then
  msgText = "イイね!"
else
  msgText = params["events"][0]["message"]["text"]
end

# 返信データの作成
message = {
  type: 'text',
  text: msgText
}

# データ送信
client = Line::Bot::Client.new { |config|
    config.channel_secret = "[自分のチャンネルシークレットを入力]"
    config.channel_token = "[自分のチャンネルトークンを入力]"
}
response = client.reply_message(replyToken, message)
#p response

# 初期認証用コード
puts <<EOF
Content-type: text/html

linebot
EOF