ruby on railsでLINE messageAPIを使おうとすると403 Forbidden エラーが出る

前提

ruby on railsでLINE messageAPIを使い、「おうむ返しBot」を作ろうとしています。

ローカル環境で動かしたかったのでngrokを導入しています。

ほぼサンプルコードのはずなのにうまく出来なくて…
初心者の質問ですみません…

実現したいこと

公式アカウントをフレンド登録しているユーザーがメッセージを送ると
同じ内容の返信が返ってくる

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

POST /callback 403 Forbidden

該当のソースコード

ruby

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

シークレットとトークンは環境変数に記載しています

ruby

#controllers/linebot_controller.rb class LinebotController < ApplicationController require 'line/bot' def client @client ||= Line::Bot::Client.new { |config| config.channel_secret = ENV["LINE_CHANNEL_SECRET"] config.channel_token = ENV["LINE_CHANNEL_TOKEN"] } end post '/callback' do body = request.body.read signature = request.env['HTTP_X_LINE_SIGNATURE'] unless client.validate_signature(body, signature) halt 400, {'Content-Type' => 'text/plain'}, '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'] } client.reply_message(event['replyToken'], message) end end end "OK" endend

導入したgem

ruby

gem 'line-bot-api'

試したこと

rails 6ではIPやloocalhost以外からのサーバーがブロックされるとの記事があり、

ruby

#config/environments/development.rb Rails.application.configure do config.hosts << '.ngrok.io' : 省略 end

を追加しましたが同じエラーが出ました。

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

(バージョン)

rails 6.0.0
ruby 2.6.5

コメントを投稿

0 コメント