Création du premier LINEbot avec AWS Cloud9 (déploiement Rails + Heroku)

introduction

LINEbot a été la première chose que Paper, qui venait de terminer le tutoriel Rails, a décidé de faire. Le but de ce temps est d'approfondir la compréhension en utilisant les choses qui ont été apprises jusqu'à présent pour "Repeat Bot" qui renvoie les caractères tels qu'ils sont. Alors, j'ose développer avec "Rails + Cloud9 + Heroku" sans utiliser des choses pratiques comme GAS.

table des matières

Création d'un compte LINE Developers et d'une nouvelle chaîne

Tout d'abord, connectez-vous aux développeurs LINE. (https://developers.line.biz/ja/) Si vous êtes nouveau chez nous, vous pouvez facilement vous inscrire avec votre compte LINE habituel. Enregistrez les informations du fournisseur et créez une nouvelle chaîne. Veuillez consulter cet article pour plus de détails. (Https://qiita.com/nkjm/items/38808bbc97d6927837cd)

Créez un compte Heroku

Si vous avez déjà créé un compte Heroku, ignorez cette étape et passez à l'étape suivante. Après avoir ouvert Heroku, cliquez sur le nouveau bouton d'enregistrement pour créer un compte. (https://jp.heroku.com/) Vous pouvez le faire plus tard, mais configurons Heroku pour qu'il soit disponible sur Cloud9 ici. Tapez simplement les codes suivants dans le terminal un par un.

terminal


curl -OL https://cli-assets.heroku.com/heroku-linux-x64.tar.gz
tar zxf heroku-linux-x64.tar.gz && rm -f heroku-linux-x64.tar.gz
sudo mv heroku /usr/local
echo 'PATH=/usr/local/heroku/bin:$PATH' >> $HOME/.bash_profile
source $HOME/.bash_profile > /dev/null

Si vous pouvez vous connecter en toute sécurité, c'est OK. Vous pouvez désormais utiliser Heroku dans votre propre environnement de développement.

Créer une application avec Rails sur cloud9

Si vous avez appris Rails, créons rapidement une application avec le familier "Rails new".

terminal


rails new repeat-bot

Ensuite, modifiez un peu le Gemfile.

Gemfile


gem 'line-bot-api'
group :development do
  gem 'sqlite3'← Ceci est la partie nouvellement ajoutée
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
group :production do
 gem 'pg'
end
end

Installons le Gem nouvellement ajouté.

terminal


bundle install --without production

Gestion des versions (déploiement Heroku)

Une fois que vous avez atteint ce point, gérons la version avec Git.

terminal


git init

Ensuite, connectons l'application heroku avec l'application sur ce Rails.

terminal


heroku git:remote -un nom d'application heroku

Si vous avez enregistré le nom de l'application Heroku plus tôt, entrez ce nom. Si vous ne l'avez pas modifié, la liste des caractères alphanumériques s'affichera automatiquement, alors saisissez-la. (Confirmer sur la page Heroku)

Déployez ensuite sur le Heroku que vous avez enregistré précédemment.

terminal


git add .
git commit -m "init"

Enfin poussez et terminez.

terminal


git push heroku master

Édition de code pour Bot

J'ajouterai du code pour Bot à plusieurs reprises. Tout d'abord, créez un contrôleur familier à Rails.

terminal


rails g controller linebot

Ensuite, copiez le secret de canal et le jeton d'accès à partir de l'écran de gestion LINEbot créé cette fois et collez-les dans le terminel. Veuillez remplir comme suit.

terminal


heroku config:set LINE_CHANNEL_SECRET=Le secret de votre chaîne
heroku config:set LINE_CHANNEL_TOKEN=Votre jeton de chaîne

Modifiez le code pour qu'il réponde à plusieurs reprises. Veuillez copier et coller.

routes.rb


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

linebot_controller.rb


class LinebotController < ApplicationController
  require 'line/bot' 

  protect_from_forgery :except => [:callback]

  def client
    @client ||= Line::Bot::Client.new { |config|
      config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
      config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
    }
  end

  def callback
    body = request.body.read

    signature = request.env['HTTP_X_LINE_SIGNATURE']
    unless client.validate_signature(body, signature)
      error 400 do 'Bad Request' end
    end

    events = client.parse_events_from(body)

    events.each { |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
    }

    head :ok
  end
end

Enfin, déployons à nouveau.

terminal


git add .
git commit -m "add linebot_controller"
git push heroku master

Ensuite, à partir de l'écran de gestion de LINEbot, modifiez l'URL du Webhook en [https://herokuappname.herokuapp.com/callback] Entrez avec et vous avez terminé.

Contrôle de fonctionnement avec LINE

Enfin, entrons réellement des caractères sur LINE et voyons si la réponse est correcte.

Recommended Posts

Création du premier LINEbot avec AWS Cloud9 (déploiement Rails + Heroku)
Cloud IDE: Heroku n'a pas pu être installé dans le didacticiel Ruby on Rails
[Rails] Flux de déploiement Heroku
Créer un environnement de développement Ruby on Rails sur AWS Cloud9
Mettre à jour RVM sur AWS Cloud 9
[Rails / Heroku / MySQL] Comment réinitialiser la base de données de l'application Rails sur Heroku
Rails (environnement postgeresql. Ubuntu), déploiement heroku
Exécutez l'AWS CLI sur Docker
Lancer des rails sur EC2 (déploiement manuel)
rails Le déploiement AWS n'est pas reflété
[Today's stack # 1] Jusqu'à sur les rails sur cloud9
Déployer des rails sur Docker vers heroku
Vérifiez la racine sur le navigateur Rails
[Rails] Récapitulatif des incidents liés aux erreurs de déploiement AWS
Créer une application et la déployer pour la première fois avec heroku
[Cloud9] Yay! You are on Rails! N'est pas affiché dans le didacticiel sur les rails
Déploiement facile avec Capistrano + AWS (EC2) + Rails
Déployez heroku avec Rails6 (Cloud9 + Ubuntu) + MySQL
Déployer sur Heroku [Ruby on Rails] Débutant
Créer un environnement de développement Java 8 avec AWS Cloud 9
Exécutez l'environnement Docker Rails MySQL sur Heroku. concevoir et cacher l'API Twitter