◆ Zielgruppe dieses Artikels h1>
☆ 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 h1>
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 b>".
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 b>.
"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 h1>
Der Artikel wird unter der Annahme erstellt, dass er unten beschrieben wird. p>
・ 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 h1>
◇ Registrieren Sie sich bei LINE-Entwicklern und erstellen Sie einen Kanal für LINE BOT h2>
![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 h3>
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) h3>
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 b>".
③ Ändern Sie die Antworteinstellungen h3>
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" h2>
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 h3> 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 h2>
① AWS-Konto erstellen h3>
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 h3>
Grundsätzlich ist die Standardeinstellung in Ordnung, aber ändern Sie nur die Plattform in " Ubuntu Server 18.04 LTS b>".
![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 h2>
①Installation des Pakets für PostgreSQL h3>
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 h3>
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 h3>
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 h3>
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 h3>
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 h2> ein
① Überprüfen Sie den Installationsstatus h3>
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 h3>
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 h2>
⓪ Erstellen Sie ein Heroku-Konto h3>
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 h3>
Ü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 h3>
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 h3>
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 h2>
① Fügen Sie die zuvor notierte URL zu den Kanaleinstellungen h3> hinzu
② Fügen Sie am Ende der URL einen Rückruf hinzu, um die Rückrufaktion h3> aufzurufen
![pic005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/da882031-a629-50ec-6b62-40be2ae79d35.png)
◇ In Heroku bereitstellen h2>
① Hinzufügen von Umgebungsvariablen h3>
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 h3>
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 h2>
① 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! !!
◆ Referenzierte Artikel h1>
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