<Für Super-Anfänger> Warum machst du keinen Chat-Bot mit "Talk API"? ?? [Ruby on Rails]

◆ Zielgruppe dieses Artikels

☆ Anfänger, die angefangen haben, Rails on Rails zu lernen
☆ Diejenigen, die LINE BOT im praktischen Format erstellen möchten
☆ Diejenigen, die von der Entwicklung des WEB-Systems frustriert waren (* Frustration auf der Front-End-Seite)

◆ Einführung Hallo! Wie der Titel schon sagt, haben wir einen Chatbot entwickelt, also beschreiben wir den Prozess. Es mag mit dem Prozess der Veröffentlichung dieses Artikels zusammenhängen, aber früher war ich motiviert, Progate zu umgehen und sofort mit der WEB-Entwicklung fortzufahren. Es ist jedoch frustriert, als ob es unvermeidlich wäre. Die Ursache war " Ich kann die Front-End-Seite nicht erreichen ". Um die Back-End-Programmiersprache zu lernen, wollte ich die Grundlagen von Ruby und Rails lernen und versuchen, etwas zu entwickeln, um mein Verständnis zu vertiefen, aber es war schwierig, eine neue Wand namens "Front-End" zu erstellen. ist. Ich habe versucht, mit Bootstrap so viele Ecken wie möglich zu schneiden, aber ich bin eine großzügige Generation, die es nicht aushält. Ich war einmal frustriert, überlegte es mir anders und versuchte es erneut, aber ich erlebte die zweite Frustration ... Zu diesem Zeitpunkt bemerkte ich LINE BOT .

"Die Entwicklung von LINE BOT muss sich des Frontends nicht bewusst sein, und die Tatsache, dass Sie die Ergebnisse sofort mit der LINE App überprüfen können, ist perfekt für mich, der Lust haben möchte, etwas zu tun !!"

Dieser Artikel ist spezialisiert auf " Jeder kann Ergebnisse erstellen, indem er dieselbe Arbeit in derselben Umgebung wie dieser Artikel ausführt! </ B>". Daher ist die Erklärung des technischen Inhalts dünn. (Ich bin in erster Linie ein Anfänger, daher kann ich es nicht im Detail erklären.)

Ich möchte, dass dieser Artikel von denen gelesen wird, die von der WEB-Entwicklung frustriert waren, weil das Frontend ein Hals ist. Möchten Sie gemeinsam einen Chat-Bot erstellen? ??

◆ Voraussetzungen

Der Artikel wird unter der Annahme erstellt, dass er unten beschrieben wird. ・ Sie können sich bei AWS registrieren (Registrierung der Kreditkarteninformationen erforderlich). * Ich habe Cloud9 verwendet, daher habe ich es zur Voraussetzung gemacht. Es ist in Ordnung, die Entwicklungsumgebung lokal zu verwenden, wir empfehlen jedoch die Verwendung von Cloud 9, da Anfänger nicht unter Umweltfehlern leiden sollen.

◆ Arbeitsablauf

◇ Registrieren Sie sich bei LINE-Entwicklern und erstellen Sie einen Kanal für LINE BOT ![pic008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/82642576-aea9-086f-d0fb-d2110c231610.png)

① Registrieren Sie sich bei LINE-Entwicklern und erstellen Sie einen Kanal Ich werde die Erklärung hier weglassen. Sie können von der unten aufgeführten URL zur offiziellen Website-Seite springen. Bitte arbeiten Sie, während Sie dies überprüfen. Der Name des Kanals kann beliebig sein, aber es ist der Name, der angezeigt wird, wenn Sie sich als Freund registrieren. Wenn Sie nicht besonders darüber sind, können Sie "Chatbot-Kun" verwenden. .. https://developers.line.biz/ja/docs/messaging-api/getting-started/#using-console

Ich denke, dass die Kanalerstellung zu diesem Zeitpunkt abgeschlossen ist, daher werde ich die Kanaleinstellungen weiter ändern.

② Ausgabe des Kanalzugriffstokens (langfristig) Bitte stellen Sie einen Zugriffstoken über die Schaltfläche im roten Rahmen aus. ![pic001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/5102b1cb-0391-776a-724e-ac2fc5e99bd1.png) Was ist ein Kanalzugriffstoken? ?? Wenn ja, überprüfen Sie bitte die folgende Seite. https://developers.line.biz/ja/docs/messaging-api/channel-access-tokens/ Mit anderen Worten, zusammenfassend heißt es " Informationen zum Aufrufen der API aus der App ".

③ Ändern Sie die Antworteinstellungen Als nächstes werden wir die Antworteinstellungen ändern. Bitte ändern Sie die Einstellungen wie im Bild gezeigt, ohne vorerst an irgendetwas zu denken. ![pic002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/732bd168-ea71-69d6-4141-279c699135de.png) ![pic003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/a6f3c8ec-4b72-5e37-1813-53409498297c.png) Was ist ein Webhook? ?? Wenn Sie neugierig sind, lesen Sie bitte diesen Artikel. Sie können mich so sorgfältig unterrichten, dass es keine Übertreibung ist zu sagen, dass selbst ein Kind es verstehen kann. https://kintone-blog.cybozu.co.jp/developer/000283.html

◇ Holen Sie sich den API-Schlüssel für "Talk API" Wie der Titel schon sagt, entwickeln wir einen Chat-Bot mit einer API namens "Talk API", die von Recruit Technologies Co., Ltd. entwickelt wurde. Ich hätte den Papagei oder den Fragebogen BOT zurückgeben können, aber ich würde gerne die API verwenden! !! Ich habe es aus meiner eigenen Perspektive als Anfänger zu einem Chatbot gemacht.

① Greifen Sie auf die offizielle Website zu und geben Sie einen API-Schlüssel aus Um die API verwenden zu können, benötigen Sie einen API-Schlüssel. Dieses Mal können Sie den Schlüssel erhalten, indem Sie einfach Ihre E-Mail-Adresse registrieren. Ich denke, Sie können es von der offiziellen Website unten erhalten, ohne es zu verstopfen, also versuchen Sie es bitte. https://a3rt.recruit-tech.co.jp/product/talkAPI/ ![pic004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/88c5d1e5-304b-36ab-d586-d04f3d8718ac.png)

Aufbau der Entwicklungsumgebung

① AWS-Konto erstellen Dies ist auch auf der offiziellen Website zusammengefasst. Weitere Informationen und Arbeiten finden Sie hier. https://aws.amazon.com/jp/register-flow/

② Erstellen Sie eine Entwicklungsumgebung mit Cloud9 Grundsätzlich ist die Standardeinstellung in Ordnung, aber ändern Sie nur die Plattform in " Ubuntu Server 18.04 LTS ". ![pic009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/1d2dfcb1-3d3d-654d-1971-a2a85fdd3a6b.png)

Von nun an werden wir den Code ändern, um den Chatbot zu implementieren. Bitte verwenden Sie die hier erstellte Entwicklungsumgebung.

◇ Entwicklung des Chat-Bots

①Installation des Pakets für PostgreSQL Dieses Mal werden wir PostgreSQL als Datenbank für die Bereitstellung auf Heroku verwenden, die kostenlos verwendet werden kann. Führen Sie den folgenden Befehl aus.

bash


sudo apt install libpq-dev

② Erstellen Sie ein neues Rails-Projekt Erstellen Sie ein Projekt, indem Sie die zu installierende Datenbank mit dem folgenden Befehl angeben.

bash


rails new <Projektname> -d postgresql

③ Erstellen Sie einen Controller für LINE BOT Wechseln Sie in die Hierarchie des in Schritt "②" erstellten Projekts und führen Sie den folgenden Befehl aus.

bash


rails generate controller linebot

④ Gemfile ändern Fügen Sie am Ende der Gemfile Folgendes hinzu und führen Sie "bundle install" aus.

Gemfile


gem 'line-bot-api'
gem 'dotenv-rails'

bash


bundle install

⑤ Routing-Einstellungen Bitte kopieren Sie den folgenden Inhalt in die Zieldatei.

config/routes.rb


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

⑥ Controller-Einstellung Bitte kopieren Sie den folgenden Inhalt in die Zieldatei.

app/controllers/linebot_controller.rb


class LinebotController < ApplicationController
  require 'line/bot'

  protect_from_forgery except: [:callback]

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

  def callback
    body = request.body.read

    signature = request.env['HTTP_X_LINE_SIGNATURE']
    head :bad_request unless client.validate_signature(body, signature)

    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
          require 'net/http'
          require 'uri'
          require 'json'

          key = ENV['TALK_API_KEY']
          uri = 'https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk'

          params = { apikey: key, query: event.message['text'] }
          uri = URI.parse(uri)
          response = Net::HTTP.post_form(uri, params)

          data = JSON.parse(response.body)

          message = {
            type: 'text',
            text: data['results'][0]['reply']
          }
          client.reply_message(event['replyToken'], message)
        end
      end
    end

    head :ok
  end
end

◇ Richten Sie Git ein

① Überprüfen Sie den Installationsstatus Führen Sie den folgenden Befehl aus, um den Installationsstatus von Git zu überprüfen. Wenn es nicht installiert ist, installieren Sie es.

bash


git --version

② Git-Einstellungen hinzufügen Führen Sie den folgenden Befehl aus, um die Git-Einstellungen hinzuzufügen.

bash


git config --global user.name "Nutzername"
git config --global user.email "Mail Adresse"
git init

◇ Erstellen Sie eine App in Heroku

⓪ Erstellen Sie ein Heroku-Konto Dieses Mal werden wir die erstellte App für Heroku bereitstellen. Bitte erstellen Sie zunächst ein Konto auf der folgenden Website. https://id.heroku.com/login

① Installieren Sie Heroku Überprüfen Sie den Installationsstatus mit dem folgenden Befehl.

bash


heroku --version

Wenn es nicht installiert ist, führen Sie den folgenden Befehl aus, um den Installationsstatus erneut zu überprüfen.

bash


curl https://cli-assets.heroku.com/install-ubuntu.sh | sh

② Melden Sie sich bei Heroku an Führen Sie den folgenden Befehl aus, um sich anzumelden. Sie werden nach der E-Mail-Adresse und dem Passwort gefragt, mit denen Sie sich bei Heroku registriert haben. Geben Sie diese ein.

bash


heroku login --interactive

③ App erstellen Führen Sie den folgenden Befehl aus, um eine App zu erstellen. Wenn der Anwendungsname weggelassen wird, wird er mit einem zufälligen Namen erstellt.

bash


heroku create <Anwendungsname>
  • Bitte notieren Sie sich die URL der App, da diese hier erstellt wird.

◇ App-Informationen zu Kanaleinstellungen hinzufügen

① Fügen Sie die zuvor notierte URL zu den Kanaleinstellungen hinzu

② Fügen Sie am Ende der URL einen Rückruf hinzu, um die Rückrufaktion aufzurufen ![pic005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/da882031-a629-50ec-6b62-40be2ae79d35.png)

◇ In Heroku bereitstellen

① Hinzufügen von Umgebungsvariablen Führen Sie den folgenden Befehl aus, um Umgebungsvariablen hinzuzufügen.

bash


heroku config:set LINE_CHANNEL_SECRET=Kanalgeheimnis, das auf dem Kanaleinstellungsbildschirm bestätigt werden kann
heroku config:set LINE_CHANNEL_TOKEN=Zugriffstoken, das auf dem Kanaleinstellungsbildschirm bestätigt werden kann
heroku config:set TALK_API_KEY=Schlüssel erhalten durch Beantragung der Talk-API

② In Heroku bereitstellen Führen Sie den folgenden Befehl aus, um ihn in Heroku bereitzustellen.

bash


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

◇ Überprüfen wir die Operation ① Freund hinzufügen Fügen Sie als Freund einen aus dem QR-Code erstellten Chatbot hinzu. ![pic006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/9bf9f5c7-dfce-d58e-4907-3ead2973cc81.png)

② Funktionsprüfung Wenn Sie eine Antwort auf die unten stehende Nachricht erhalten, sind Sie erfolgreich! !! pic007.png

◆ Referenzierte Artikel Hier sind einige Artikel und Materialien, die sehr nützliche Informationen waren, als ich LINE BOT erstellt habe.

□ [Rails] Lassen Sie uns einfach LINE Bot in ungefähr einer Stunde entwickeln - Fragebogen insgesamt Bot-Grundlagen - [Mit Bild] https://qiita.com/noriya1217/items/00d6461e9f54900377a3 □ SDK-Repository der LINE Messaging API (Ruby) https://github.com/line/line-bot-sdk-ruby □ Implementieren Sie Ruby HTTP-Anforderungen so einfach wie möglich https://qiita.com/takano-h/items/dd10818eb7e09161bc29

Endlich Danke, dass du bis zum Ende zugesehen hast. Ich würde mich freuen, wenn Sie in den Kommentaren auf Bedenken hinweisen könnten.

Recommended Posts