質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

618閲覧

おうむ返しするLine Botが動かない

退会済みユーザー

退会済みユーザー

総合スコア0

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/04/06 05:53

編集2019/04/08 05:32

今、何かメッセージを打つとおうむ返しするLINE BOTをRailsで作っているのですが動かなくて困っています。
LINEの公式でwebhook URL(https://hoge.herokuapp.com/callback)を登録して接続確認をすると、 Webhookが無効なHTTPステータスコードを返しました(期待されるステータスコードは200です)と返ってきてしまいます。ただ、ソースコードを見る限り問題がなさそうなのですが、なぜ200が返ってこないのかわかりません。もしご存知の方がいらっしゃいましたら教えていただきたいです。ちなみにWebhook送信は利用するになっています。

application_controller

class ApplicationController < ActionController::Base require 'line/bot' protect_from_forgery with: :null_session before_action :validate_signature def validate_signature body = request.body.read signature = request.env['HTTP_X_LINE_SIGNATURE'] unless client.validate_signature(body, signature) error 400 do 'Bad Request' end end end def client @client ||= Line::Bot::Client.new { |config| config.channel_secret = ENV['LINE_CHANNEL_SECRET'] config.channel_token = ENV['LINE_CHANNEL_TOKEN'] } end end

linebot_controller

class LinebotController < ApplicationController def callback body = request.body.read 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 message = { type: 'text', text: event.message['text'] } client.reply_message(event['replyToken'], message) end end } head :ok end end

routes

Rails.application.routes.draw do post '/callback' => 'linebot#callback' end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

urbainleverrier

2019/04/08 05:31

herokuのlogはどうなっていますか? binding.pryは開発環境のみ使うものだと思いますが、実際は取り除かれていますか?
退会済みユーザー

退会済みユーザー

2019/04/14 11:59 編集

失礼いたしました。binding.pryは実際には取り除かれており、herokuのlogを見ても特にエラーは出ていない状況になっております。
urbainleverrier

2019/04/08 05:47

herokuのlogにはlineからのrequestとresponseがあるはずです。logを提示していただけませんか。
退会済みユーザー

退会済みユーザー

2019/04/14 12:00

返信遅くなり申し訳ございません。tktktさんがおっしゃる通りherokuのlogを見て見たところ、sqliteのところで引っかかっていたのが原因でした。ありがとうございました!
guest

回答1

0

ベストアンサー

heroku logsで見て見たところ、sqliteのgemのところで詰まっていたのが原因でした。エラー通りgemファイルをgem 'sqlite3', '~> 1.3.6'とし、heroku上でbundle installしたところエラーはなくなりました。

投稿2019/04/14 12:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問