前提
LINE-Botの作成の方法を備忘録として残してます。
環境
- Homebrow
- ruby '2.6.3'
- rails '6.1.3'
Messaging API | LINE Developers
Messaging API | LINE Developers
先にLINE Developers登録してください。
チャネルの作成
「新規プロバイダー作成」をして「Messaging API」をクリックします。
$ gem 'line-bot-api'
bundle install
しましょう
ngrokのインストール
Homebrewを使ってngrokをインストールします。
$ brew install ngrok
$ ngrok --version
バージョンが表示されていたらインストール出来ています。
$ rails s
railsのサーバー起動して新しいターミナルでngrok
を起動させます。
http://localhost:3000でアクセスしてますのでhttp 3000
します。
$ ngrok http 3000
ngrok
のターミナル上で表示されていますのでここからアクセスできます。
ですがrails
でDNSリバインディング攻撃の対策のためアクセスできないようになっています。
Forwarding https://xxxxxxx.ngrok.io
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
# Uncomment if you wish to allow Action Cable access from any origin.
# config.action_cable.disable_request_forgery_protection = true
config.hosts.clear #追加します
end
rails
を再起動させてngrok
のターミナルのhttps://xxxxxxx.ngrok.io
アクセスします。
protect_from_forgery except: [:アクション名]
#CSRF対策を無効化するコードです。
.env作成
gem 'dotenv-rails'
bundle install
します。
$ touch .env
LINE_CHANNEL_SECRET='xxxxxxxx'
LINE_CHANNEL_TOKEN='xxxxxxxx'
LINE_CHANNEL_SECRET
基本設定のチャンネルシークレットを発行し、コピーします。
LINE_CHANNEL_TOKEN
メッセージングAPI設定のチャネルアクセストークンを発行し、コピーします。
/.env #追加します
Webhook設定
表示させたページを設定します。
https://xxxxxxxxxx.ngrok.io/xxx
ngrokを起動するたびにURLが変わるため設定しなおす必要があります。
これでRailsとlineの連携の設定は完成です。
簡単な返答くらいなら可能な状態になりました。
gem 'httpclient'
を使用し、WebAPI叩ける様にもできます。