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

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

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

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

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

Q&A

解決済

1回答

861閲覧

herokuでアプリが上げられず、blank appとでてしまう

ari1235

総合スコア11

LINE Messaging API

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

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

0グッド

0クリップ

投稿2018/06/21 04:03

前提・実現したいこと

lineのおうむ返しbotをrailsで書いて、herokuで作ろうと思ったところ、blank appとエラーが出てしまい、おうむ返しはされない。DBはmysqlを使っている。参考にした記事はこちら「Rails HerokuでLINE BOTを試してみた
初心者なので初歩的な質問かと思いますが、解決に協力お願いします。

発生している問題・エラーメッセージ

エラーメッセージ 2018-06-21T02:52:14.668542+00:00 heroku[router]: at=info code=H81 desc="Blank app" method=POST path="/callback" host=〇〇〇.herokuapp.com request_id=772e0ddf-9f64-4d66-b93a-b34fbf16f1e8 fwd="203.104.146.154" dyno= connect= service= status=502 bytes= protocol=https

該当のソースコード

rails

1class WebhookController < ApplicationController 2 3 // Lineからのcallbackか認証 4 protect_from_forgery with: :null_session 5 6 CHANNEL_SECRET = ENV['line_secret'] 7 OUTBOUND_PROXY = ENV['herokuのfixie_proxy'] 8 CHANNEL_ACCESS_TOKEN = ENV['line_access_token'] 9 10 def callback 11 unless is_validate_signature 12 render :nothing => true, status: 470 13 end 14 15 event = params["events"][0] 16 event_type = event["type"] 17 replyToken = event["replyToken"] 18 19 case event_type 20 when "message" 21 input_text = event["message"]["text"] 22 output_text = input_text 23 end 24 25 client = LineClient.new(CHANNEL_ACCESS_TOKEN, OUTBOUND_PROXY) 26 res = client.reply(replyToken, output_text) 27 28 if res.status == 200 29 logger.info({success: res}) 30 else 31 logger.info({fail: res}) 32 end 33 34 render :nothing => true, status: :ok 35 end 36 37 private 38 # verify access from LINE 39 def is_validate_signature 40 signature = request.headers["X-LINE-Signature"] 41 http_request_body = request.raw_post 42 hash = OpenSSL::HMAC::digest(OpenSSL::Digest::SHA256.new, CHANNEL_SECRET, http_request_body) 43 signature_answer = Base64.strict_encode64(hash) 44 signature == signature_answer 45 end 46 47 48end

libファイル

1//libファイル 2 3require "faraday" 4require "faraday_middleware" 5require "json" 6require "pp" 7 8 9class LineClient 10 END_POINT = "https://api.line.me" 11 12 def initialize(channel_access_token, proxy = nil) 13 @channel_access_token = channel_access_token 14 @proxy = proxy 15 end 16 17 def post(path, data) 18 client = Faraday.new(:url => END_POINT) do |conn| 19 conn.request :json 20 conn.response :json, :content_type => /\bjson$/ 21 conn.adapter Faraday.default_adapter 22 conn.proxy @proxy 23 end 24 25 res = client.post do |request| 26 request.url path 27 request.headers = { 28 'Content-type' => 'application/json', 29 'Authorization' => "Bearer #{@channel_access_token}" 30 } 31 request.body = data 32 end 33 res 34 end 35 36 def reply(replyToken, text) 37 38 messages = [ 39 { 40 "type" => "text" , 41 "text" => text 42 } 43 ] 44 45 body = { 46 "replyToken" => replyToken , 47 "messages" => messages 48 } 49 post('/v2/bot/message/reply', body.to_json) 50 end 51 52end 53

試したこと

gemファイルを見直したり、herokuのDBをmysqlに設定し直したりはした。
herokuのconfigで環境変数も設定してある。

補足情報(FW/ツールのバージョンなど)

gemはmysqlのバージョンを合わせる他、
gem 'dotenv-rails'
gem 'faraday'
gem 'faraday_middleware'

group :production do
gem 'rails_12factor'
end
を追記した。

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

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

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

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

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

guest

回答1

0

ベストアンサー

デプロイが正常に行われていないようです。

正常にアプリケーションが作成されているなら
git push heroku master
でデプロイできるはずです。

投稿2018/06/21 05:29

編集2018/06/21 05:30
asm

総合スコア15147

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

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

ari1235

2018/06/21 05:44

回答ありがとうございます。 git push heroku master をしたところ、いくつかエラーがあるようで、 remote: Tasks: TOP => environment remote: (See full trace by running task with --trace) remote: ! remote: ! Precompiling assets failed. remote: ! remote: ! Push rejected, failed to compile Ruby app. remote: remote: ! Push failed このエラーの意味がわかりません!
asm

2018/06/21 05:54

ローカルで rails assets:precompile でプリコンパイルは出来ていますか?
ari1235

2018/06/21 14:52

rake assets:precompileはできてませんでした! 実行したら、一応blank appと表示されるエラーはなくなりました!!ありがとうございます!! ただ、次はApp crashedとエラーが出てしまったので、それについてはまた自分なりに調べた上で別に質問させていただくかもしれません(^^;)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問