[RUBY] [Rails] Exécutez LINE Bot dans un environnement local à l'aide de ngrok

Aperçu

La dernière fois, j'ai créé un echoBot en utilisant l'API de messagerie de LINE. https://qiita.com/shizu9d/items/2bd2618409c9e5c93e0f Si vous modifiez le code, il ne sera reflété que si vous le déployez sur Heroku, donc En l'exécutant dans l'environnement local, vous pouvez facilement déboguer.

environnement

・ Rubis 2.6.5 ・ Rails 6.0.3.2 ・ PostgreSQL ・ Heroku

ngrok L'utilisation de ngrok facilite l'exposition d'un serveur Web fonctionnant localement au monde extérieur. Vous pourrez exécuter Bot dans votre environnement de développement sans le déployer!

installation de ngrok

$ brew install ngrok

Si ce qui précède ne fonctionne pas, utilisez l'option cask.

$ brew cask install ngrok

Courir

Spécifiez le numéro de port de la page de démarrage locale.

  http://localhost:3000

Dans ce cas

 $ ngrok http 3000

Veuillez commander.

image.png S'il est affiché comme ça, c'est OK!

Définition des variables d'environnement

Définissez les variables d'environnement dans l'environnement local. Cette fois, j'aimerais utiliser dotenv et le gérer dans un fichier .env.

gem dotenv-rails Utilisez les rails gem'dotev '.

Gemfile


 gem 'dotenv-rails'
 $ bundle install

Créez un fichier .env directement sous la racine de l'application.

 $ touch .env

Définissez le jeton d'accès et le secret de canal dans le fichier .env créé.

.env


 LINE_CHANNEL_SECRET=Collez le secret de la chaîne ici
 LINE_CHANNEL_TOKEN=Collez le jeton d'accès ici

Ajoutez le fichier .env à gitignore et définissez-le pour qu'il ne soit pas téléchargé.

gitignore


 /.env

Paramètres d'URL du webhook

image.png

Ajoutez / rappelez l'URL ngrok (deuxième transfert) et définissez-la comme URL Webhook.

image.png

Vous êtes maintenant prêt à exécuter LINE Bot dans votre environnement local! Merci à tout le monde sauf Rails 6!

Bloqué

Rails 6 semble bloquer les serveurs avec une notation d'adresse IP et des serveurs autres que localhost. Par conséquent, définissez pour autoriser l'accès de ngrok.

config/environments/development.rb


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

Résumé

Grâce à la possibilité de s'exécuter localement, il est plus facile de déboguer et vous pouvez voir comment l'application fonctionne. Vous pouvez désormais apprendre efficacement. Actuellement, j'ai créé un robot de recherche de restaurant en utilisant l'API Guru Navi.

Les références

J'ai fait référence à l'article suivant. https://qiita.com/hirokisoccer/items/7033c1bb9c85bf6789bd https://qiita.com/suketa/items/f00570e6f171cb987ddd

Recommended Posts

[Rails] Exécutez LINE Bot dans un environnement local à l'aide de ngrok
Connexion SSL Rails5.1 + puma dans un environnement de production local
SSL dans l'environnement local de Docker / Rails / puma
Japaneseize en utilisant i18n avec Rails
[Rails 6] Personnaliser Bootstrap dans l'environnement Rails + Bootstrap 5.0.0-alpha
Après avoir appris Progate, j'ai essayé de créer une application SNS en utilisant Rails dans l'environnement local
Construction de l'environnement du serveur API Rails à l'aide de docker-compose
Exécutez Redmine dans l'environnement local de Windows10 Pro-Use Docker Desktop pour Windows
[Rails] À propos de local: true décrit dans form_with
Implémentation par lots dans l'environnement RubyOnRails à l'aide de Digdag
[Rails] Réinitialisez la base de données dans l'environnement de production
Exécutons un lot dans un conteneur à l'aide d'Azure Batch
Implémenter des transitions de boutons à l'aide de link_to dans Rails
Exécuter l'analyse statique Infer dans l'environnement Windows
Implémenter un bouton de partage dans Rails 6 sans utiliser Gem
tutoriel rails À propos de l'activation de compte dans l'environnement de production
Mettre en œuvre la fonction de classement par étoiles en utilisant Raty dans Rails 6
[Note] Construction de l'environnement Struts2 à l'aide de Gradle dans Eclipse
[Rails] Afficher les avatars dans les messages à l'aide du stockage actif
Une erreur de serveur interne 500 se produit dans l'environnement de production Rails
Autoriser le développement dans l'environnement Eclipse à l'aide du SDK iPLAss
[Rails] Comment utiliser PostgreSQL dans l'environnement Vagrant
Comment installer Docker dans l'environnement local d'une application Rails existante [Rails 6 / MySQL 8]
Group_by dans Rails
Partage de la recherche sur l'automatisation des diagrammes ER dans l'environnement Rails
Erreur de migration après l'association Activerecord dans l'environnement Rails5 + Docker
Les débutants utilisent ubuntu dans la fenêtre pour préparer l'environnement des rails
J'ai installé Squid sur CentOS dans mon environnement local
[Rails] Que faire si vous effectuez accidentellement une installation groupée dans un environnement de production de votre environnement local