Erstellen des ersten LINEbot mit AWS Cloud9 (Rails + Heroku-Bereitstellung)

Einführung

LINEbot war das erste, was Paper, das gerade das Rails-Tutorial beendet hatte, machen wollte. Der Zweck dieser Zeit ist es, das Verständnis zu vertiefen, indem die bisher für "Repeat Bot" gelernten Dinge verwendet werden, die Zeichen so zurückgeben, wie sie sind. Ich wage es also, mit "Rails + Cloud9 + Heroku" zu entwickeln, ohne praktische Dinge wie GAS zu verwenden.

Inhaltsverzeichnis

--LINE Entwicklerkonto & Erstellung neuer Kanäle --Erstelle ein Heroku-Konto --Erstellen Sie die Rails-App in Cloud9

LINE-Entwicklerkonto und Erstellung neuer Kanäle

Melden Sie sich zunächst bei LINE Developers an. (https://developers.line.biz/ja/) Wenn Sie neu bei uns sind, können Sie sich ganz einfach mit Ihrem üblichen LINE-Konto registrieren. Registrieren Sie die Anbieterinformationen und erstellen Sie einen neuen Kanal. Weitere Informationen finden Sie in diesem Artikel. (Https://qiita.com/nkjm/items/38808bbc97d6927837cd)

Erstellen Sie ein Heroku-Konto

Wenn Sie bereits ein Heroku-Konto erstellt haben, überspringen Sie diesen Schritt und fahren Sie mit dem nächsten Schritt fort. Klicken Sie nach dem Öffnen von Heroku auf die Schaltfläche für die neue Registrierung, um ein Konto zu erstellen. (https://jp.heroku.com/) Sie können es später tun, aber lassen Sie uns Heroku so einrichten, dass es hier auf Cloud9 verfügbar ist. Geben Sie einfach die folgenden Codes nacheinander in das Terminal ein.

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

Wenn Sie sich sicher anmelden können, ist dies in Ordnung. Sie können Heroku jetzt in Ihrer eigenen Entwicklungsumgebung verwenden.

Erstellen Sie eine App mit Rails in Cloud9

Wenn Sie Rails gelernt haben, erstellen wir schnell eine App mit dem bekannten "Rails new".

terminal


rails new repeat-bot

Dann bearbeiten Sie die Gemfile ein wenig.

Gemfile


gem 'line-bot-api'
group :development do
  gem 'sqlite3'← Dies ist der neu hinzugefügte Teil
  # 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

Lassen Sie uns den neu hinzugefügten Edelstein installieren.

terminal


bundle install --without production

Versionsverwaltung (Heroku-Bereitstellung)

Sobald Sie diesen Punkt erreicht haben, verwalten wir die Version mit Git.

terminal


git init

Als nächstes verbinden wir die Heroku-App mit der App auf diesen Schienen.

terminal


heroku git:remote -ein Heroku-App-Name

Wenn Sie den Namen der Heroku-App zuvor registriert haben, geben Sie diesen Namen ein. Wenn Sie es nicht geändert haben, wird die Liste der alphanumerischen Zeichen automatisch angezeigt. Geben Sie sie daher ein. (Bestätigen Sie von der Heroku-Seite)

Stellen Sie dann das Heroku bereit, das Sie zuvor registriert haben.

terminal


git add .
git commit -m "init"

Zum Schluss drücken und fertig.

terminal


git push heroku master

Code-Bearbeitung für Bot

Ich werde wiederholt Code für Bot hinzufügen. Erstellen Sie zunächst einen Controller, der Rails vertraut ist.

terminal


rails g controller linebot

Kopieren Sie als Nächstes das Kanalgeheimnis und das Zugriffstoken aus dem diesmal erstellten LINEbot-Verwaltungsbildschirm und fügen Sie sie in das Terminel ein. Bitte füllen Sie wie folgt aus.

terminal


heroku config:set LINE_CHANNEL_SECRET=Dein Kanalgeheimnis
heroku config:set LINE_CHANNEL_TOKEN=Dein Kanal-Token

Bearbeiten Sie den Code so, dass er wiederholt reagiert. Bitte kopieren und einfügen.

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

Lassen Sie uns zum Schluss noch einmal bereitstellen.

terminal


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

Ändern Sie dann im LINEbot-Verwaltungsbildschirm die Webhook-URL in [https://herokuappname.herokuapp.com/callback]. Treten Sie mit ein und Sie sind fertig.

Funktionsprüfung mit LINE

Lassen Sie uns abschließend Zeichen in LINE eingeben und prüfen, ob die Antwort korrekt ist.

Recommended Posts

Erstellen des ersten LINEbot mit AWS Cloud9 (Rails + Heroku-Bereitstellung)
Cloud-IDE: Heroku konnte nicht im Ruby on Rails-Tutorial installiert werden
[Schienen] Heroku-Bereitstellungsablauf
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Aktualisieren Sie RVM in AWS Cloud 9
[Rails / Heroku / MySQL] So setzen Sie die Datenbank der Rails-App auf Heroku zurück
Rails (postgeresql. Ubuntu-Umgebung), Heroku-Bereitstellung
Führen Sie die AWS CLI in Docker aus
Rails auf EC2 starten (manuelle Bereitstellung)
Rails Die AWS-Bereitstellung wird nicht berücksichtigt
[Heutiger Stapel Nr. 1] Bis auf Schienen auf Cloud9
Stellen Sie Rails on Docker für Heroku bereit
Überprüfen Sie das Stammverzeichnis im Rails-Browser
[Rails] Zusammenfassung der AWS-Bereitstellungsfehler
Erstellen einer App und erstmaliges Bereitstellen mit heroku
[Cloud9] Yay! Du bist auf Schienen! Wird im Schienen-Tutorial nicht angezeigt
Einfache Bereitstellung mit Capistrano + AWS (EC2) + Rails
Stellen Sie Heroku mit Rails6 (Cloud9 + Ubuntu) + MySQL bereit
Bereitstellen für Heroku [Ruby on Rails] Anfänger
Erstellen Sie eine Java 8-Entwicklungsumgebung mit AWS Cloud 9
Führen Sie die Docker-Umgebung Rails MySQL auf Heroku aus. Entwickeln und verstecken Sie die Twitter-API