57. サンプルコード・デモ
def index
body = request.raw_post
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature) ## Requestのチェック
render text: "Bad Request"
return
end
58. サンプルコード・デモ
events = client.parse_events_from(body)
events.each { |event|
case event
when Line::Bot::Event::Message
case event.type
when Line::Bot::Event::MessageType::Text ## Textメッセージのタイプ
message = execute(event) ## 応答メッセージの設定
when Line::Bot::Event::MessageType::Image ## 画像メッセージのタイプ
message = [{type: 'text', text: "画像送信ありがとうございます!"}]
end
client.reply_message(event['replyToken'], message) ## 応答を送信
when Line::Bot::Event::Postback # 次へ など選択
client.reply_message(event['replyToken'], execute_for_postback_event(event))
end
}
render text: "OK"
end
59. サンプルコード・デモ
private
def execute(event)
text = event.message['text']
## 送信されたメッセージに従って応答メッセージを設定する
if text == "こんにちは" then
msg = "こんにちは!今日もよろしく!"
elsif text == "こんばんは" then
msg = "こんばんは!今夜もがんばりましょう!"
elsif text == "さようなら" then
msg = "さようなら!また明日!"
elsif text == "はじめまして" then
msg = "LINE BOTです!よろしく!"
else
msg = "メッセージありがとうございます!"
end
## 応答メッセージ用JSONの作成
[{
type: 'text',
text: msg
}]
end
end