[RUBY] [Rails] Erstellen Sie einen Echo-Bot mit der LINE Messaging-API.

Überblick

Wir haben LINE Bot entwickelt, um die Web-API zu lernen. Dieses Mal erstellen wir einen echoBot, der einen einfachen gesendeten Text so zurückgibt, wie er ist. Entwickeln Sie mit Rails und stellen Sie sie sogar in Heroku bereit.

Umgebung

・ Ruby 2.6.5 ・ Schienen 6.0.3.2 ・ PostgreSQL ・ Heroku

Inhaltsverzeichnis

・ Erstellen Sie einen Kanal mit LINE-Entwicklern ・ Erstellen Sie ein Programm für den Bot selbst (Ruby / Rails) ・ In Heroku bereitstellen

Erstellen Sie einen Kanal mit LINE-Entwicklern

Registrieren Sie sich zunächst als LINE-Entwickler. Erstellen Sie dann einen Anbieter und einen Kanal, um den erforderlichen API-Schlüssel zu erhalten. https://developers.line.biz/ja/docs/messaging-api/getting-started/

Erstellen Sie einen Kanal für Bot unter Bezugnahme auf die Formel (oben). Wenn Sie die Arbeit kurz auflisten,

・ Melden Sie sich bei der LINE Developers-Konsole an ・ Geben Sie Ihren Namen und Ihre E-Mail-Adresse ein, um ein Entwicklerkonto zu erstellen

Für die Bot-Entwicklung sind ein Kanalgeheimnis und ein Kanalzugriffstoken erforderlich. Notieren Sie sich dies hier!

Erstellen Sie ein Programm für den Bot selbst (Ruby / Rails)

Die Datenbank verwendet PostgreSQL, da es auf Heroku bereitgestellt wird.

$Schienen neuer App-Name-d postgresql
$Name der CD-App
$ git init

Installieren Sie die erforderlichen Edelsteine

Verwenden Sie einen Edelstein namens Line-Bot-API.

Gemfile


gem 'line-bot-api'
$ bundule install

Implementierung

1. Routing-Einstellungen

config/routes.rb



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

2. Erstellen Sie einen Controller

$ rails g controller linebot

3. Beschreibung der Steuerung

Die Beschreibung an den Controller wurde (kopiert) unter Bezugnahme auf RUBY der offiziellen Linie SDK. https://github.com/line/line-bot-sdk-ruby/blob/master/examples/echobot/app.rb

python


class LinebotController < ApplicationController
 require 'line/bot'  # gem 'line-bot-api'

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

post '/callback' do
  body = request.body.read

  signature = request.env['HTTP_X_LINE_SIGNATURE']
  unless client.validate_signature(body, signature)
    halt 400, {'Content-Type' => 'text/plain'}, 'Bad Request'
  end

  events = client.parse_events_from(body)

  events.each do |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
  end

  "OK"
 end
end

In Heroku bereitstellen

Melden Sie sich zuerst bei Heroku an, erstellen Sie eine App auf Heroku und stellen Sie sie bereit.

Legen Sie Umgebungsvariablen auf der Heroku-Seite fest.

$ heroku config:set LINE_CHANNEL_SECRET=Fügen Sie das Kanalgeheimnis ein, das Sie zuvor hier notiert haben
$ heroku config:set LINE_CHANNEL_TOKEN=Fügen Sie das zuvor notierte Zugriffstoken hier ein

Legen Sie die Webhook-Einstellungen mit LINE-Entwicklern fest

Stellen Sie den Webhook auf die URL mit / callback am Ende der bereitgestellten Adresse ein. image.png

Dies vervollständigt den Echo-Bot. Wenn Sie den Text senden, wird derselbe Text zurückgegeben.

Zusammenfassung

Derzeit wird der Code nach dem Ändern erst wiedergegeben, wenn er bereitgestellt wird Nächstes Mal werde ich ngrok verwenden, um es in einer lokalen Umgebung auszuführen. https://qiita.com/shizu9d/items/42b2cb209b2e23a9af6d

Verweise

Ich habe auf den folgenden Artikel verwiesen. https://qiita.com/noriya1217/items/00d6461e9f54900377a3

Recommended Posts

[Rails] Erstellen Sie einen Echo-Bot mit der LINE Messaging-API.
Nuxt.js × Erstellen Sie eine Anwendung im Rails-API-Modus
Erstellen Sie eine App, indem Sie die Rails-Version angeben
[Rails] Erstellen Sie eine Anwendung
Die Geschichte, Dr. Orchid mit LINE BOT zu machen
Fügen Sie dem Header-Link mit Rails fontawesome ein Symbol hinzu
Einfache Möglichkeit zum Erstellen einer Zuordnungsklasse bei Verwendung der API
[Schienen] Getriebe mit LINE Bot schieben
[Parse] Drücken Sie die API mit callFunctionInBackground
[Rails 6] API-Entwicklung mit GraphQL (Query)
Erstellen Sie eine einfach zu erweiternde Stream-API-Alternative
Versuchen Sie es mit dem Nachrichtensystem Pulsar
[Schienen 6] zerstören mit der Ressourcenmethode
Versuchen Sie es mit der Stream-API in Java
Rails API-Serverumgebungskonstruktion mit Docker-Compose
Erstellen Sie mit Grape einen RESTful-API-Service
Versuchen Sie es mit der Emotion API von Android
[LINE @] Ich habe versucht, einen westlichen Kalender für einen japanischen Kalender zu konvertieren. BOT [Messaging API]