[RUBY] [Rails] Führen Sie LINE Bot in einer lokalen Umgebung mit ngrok aus

Überblick

Beim letzten Mal habe ich einen EchoBot mit der Messaging-API von LINE erstellt. https://qiita.com/shizu9d/items/2bd2618409c9e5c93e0f Wenn Sie den Code bearbeiten, wird er nur angezeigt, wenn Sie ihn für Heroku bereitstellen Durch Ausführen in der lokalen Umgebung können Sie problemlos debuggen.

Umgebung

・ Ruby 2.6.5 ・ Schienen 6.0.3.2 ・ PostgreSQL ・ Heroku

ngrok Die Verwendung von ngrok macht es einfach, einen lokal laufenden Webserver der Außenwelt zugänglich zu machen. Sie können Bot in Ihrer Entwicklungsumgebung ausführen, ohne es bereitzustellen!

ngrok Installation

$ brew install ngrok

Wenn das oben genannte nicht funktioniert, verwenden Sie die Fassoption.

$ brew cask install ngrok

Lauf

Geben Sie die Portnummer der lokalen Startseite an.

  http://localhost:3000

In einem solchen Fall

 $ ngrok http 3000

Bitte befehlen.

image.png Wenn es so angezeigt wird, ist es OK!

Umgebungsvariablen einstellen

Legen Sie Umgebungsvariablen in der lokalen Umgebung fest. Dieses Mal möchte ich dotenv verwenden und es in einer .env-Datei verwalten.

gem dotenv-rails Verwenden Sie die gem'dotev-Schienen.

Gemfile


 gem 'dotenv-rails'
 $ bundle install

Erstellen Sie eine .env-Datei direkt unter dem Stammverzeichnis der Anwendung.

 $ touch .env

Legen Sie das Zugriffstoken und das Kanalgeheimnis in der erstellten ENV-Datei fest.

.env


 LINE_CHANNEL_SECRET=Fügen Sie hier das Kanalgeheimnis ein
 LINE_CHANNEL_TOKEN=Fügen Sie hier das Zugriffstoken ein

Fügen Sie die .env-Datei zu gitignore hinzu und stellen Sie sie so ein, dass sie nicht hochgeladen wird.

gitignore


 /.env

Webhook-URL-Einstellungen

image.png

Hinzufügen / Rückruf zur ngrok-URL (zweite Weiterleitung) und Festlegen der Webhook-URL.

image.png

Jetzt können Sie LINE Bot in Ihrer lokalen Umgebung ausführen! Vielen Dank an alle außer Rails 6!

verstopft

Rails 6 scheint Server mit IP-Adressnotation und andere Server als localhost zu blockieren. Stellen Sie daher ein, dass der Zugriff auf ngrok zulässig ist.

config/environments/development.rb


Rails.application.configure do
~ Ausgelassen ~
 config.hosts << '.ngrok.io'
end

Zusammenfassung

Dank der lokalen Ausführung ist das Debuggen einfacher und Sie können sehen, wie die App funktioniert. Sie können jetzt effizient lernen. Derzeit habe ich einen Restaurant-Such-Bot mit der Guru Navi-API erstellt.

Verweise

Ich habe auf den folgenden Artikel verwiesen. https://qiita.com/hirokisoccer/items/7033c1bb9c85bf6789bd https://qiita.com/suketa/items/f00570e6f171cb987ddd

Recommended Posts

[Rails] Führen Sie LINE Bot in einer lokalen Umgebung mit ngrok aus
Rails5.1 + Puma SSL-Verbindung in lokaler Produktionsumgebung
SSL in der lokalen Umgebung von Docker / Rails / Puma
Japanisieren Sie mit i18n mit Rails
[Rails 6] Passen Sie Bootstrap in der Rails + Bootstrap 5.0.0-Alpha-Umgebung an
Nachdem ich Progate gelernt hatte, versuchte ich, eine SNS-Anwendung mit Rails in der lokalen Umgebung zu erstellen
Rails API-Serverumgebungskonstruktion mit Docker-Compose
Führen Sie Redmine in der lokalen Umgebung von Windows 10 Pro-Use Docker Desktop für Windows aus
[Rails] Über local: true, beschrieben in form_with
Stapelimplementierung in der RubyOnRails-Umgebung mit Digdag
[Rails] Setzen Sie die Datenbank in der Produktionsumgebung zurück
Lassen Sie uns mit Azure Batch einen Stapel in einem Container ausführen
Implementieren Sie Schaltflächenübergänge mit link_to in Rails
Statische Analyse ausführen In der Windows-Umgebung ableiten
Implementieren Sie eine Freigabeschaltfläche in Rails 6, ohne Gem zu verwenden
Rails-Tutorial Informationen zur Kontoaktivierung in der Produktionsumgebung
Implementieren Sie die Sternebewertungsfunktion mit Raty in Rails 6
[Hinweis] Struts2-Umgebungskonstruktion mit Gradle in Eclipse
[Rails] Zeigt Avatare in Posts mit Active Storage an
500 Interner Serverfehler tritt in der Rails-Produktionsumgebung auf
Ermöglichen Sie die Entwicklung in einer Eclipse-Umgebung mit dem iPLAss SDK
[Rails] Verwendung von PostgreSQL in einer Vagrant-Umgebung
So installieren Sie Docker in der lokalen Umgebung einer vorhandenen Rails-App [Rails 6 / MySQL 8]
Group_by in Rails
Austausch von Forschungsergebnissen zur Automatisierung von ER-Diagrammen in der Rails-Umgebung
Migrationsfehler nach Activerecord-Zuordnung in der Rails5 + Docker-Umgebung
Anfänger verwenden Ubuntu im Fenster, um die Schienenumgebung vorzubereiten
Ich habe Squid unter CentOS in meiner lokalen Umgebung installiert
[Rails] Was tun, wenn Sie versehentlich eine Bundle-Installation in einer Produktionsumgebung in Ihrer lokalen Umgebung durchführen?