LINEbotが機能しない
Q&A
Closed
解決したいこと
RailsでLINE Messaging APIを使って、オウム返しBotを作成できない。
発生している問題・エラー
RailsでLINE Messaging APIを使って、オウム返しBotを作成しています。
Bot用channelを作成し、デプロイしたアドレスの末尾に
/callbackをつけたURLをWebhookに設定しました。
コードは以下のように書きました。
Gemfile
gem 'line-bot-api'
linebot_controller.rb
class LinebotController < ApplicationController
require 'line/bot'
protect_from_forgery :except => [:callback]
def client
client = Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
def callback
body = request.body.read
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature)
head :bad_request
end
events = client.parse_events_from(body)
events.each do |event|
case event
when Line::Bot::Event::Message
case event.type
when Line::Bot::Event::MessageType::Text
message = {
type: 'text',
text: event.message['text']
}
end
end
client.reply_message(event['replyToken'], message)
end
head :ok
end
end
routes.rb
post '/callback' => 'linebot#callback'
しかし、LINE Developer内のWebhookURLを検証してみると、
エラー
ボットサーバーから200以外のHTTPステータスコードが返されました。(302 Found)
LINEプラットフォームから送信されたHTTP POSTリクエストに対してボットサーバーがステータスコード200を返すことを確認してください。
詳しくは、Messaging APIリファレンスのレスポンスを参照してください。
と表示されます。もちろんLINEbotもオウム返しがされない状態です。
自分で試したこと
原因がわかりません。
envファイルの値も何度も確認したのですが、正しいです。
0