◆ Audience cible de cet article h1>
☆ Les débutants qui ont commencé à apprendre les rails sur les rails
☆ Ceux qui veulent créer LINE BOT dans un format pratique
☆ Ceux qui ont été frustrés par le développement du système WEB (* Frustration sur le côté frontal)
◆ Introduction h1>
salut! Comme le titre l'indique, nous avons développé un chatbot, nous décrivons donc le processus.
Cela peut être lié au processus de publication de cet article, mais dans l'ancien temps, j'étais motivé pour faire le tour de Progate et procéder au développement WEB immédiatement. Cependant, il est frustré comme si c'était inévitable. La cause était " Je ne peux pas atteindre le côté frontal b>".
Dans le but d'apprendre le langage de programmation back-end, j'avais envie d'apprendre les bases de Ruby and Rails et d'essayer de faire quelque chose pour approfondir ma compréhension, mais il était difficile de créer un nouveau mur appelé "front-end". est. J'ai essayé d'utiliser Bootstrap pour couper les coins le plus possible, mais je suis une génération généreuse qui ne peut pas le supporter.
J'ai été frustré une fois, j'ai changé d'avis et essayé à nouveau, mais j'ai ressenti la deuxième frustration ... À ce moment-là, j'ai remarqué LINE BOT b>.
J'ai pensé: "Le développement de LINE BOT n'a pas besoin d'être conscient du front-end, et le fait que vous puissiez vérifier les résultats immédiatement avec l'application LINE est parfait pour moi qui veut avoir envie de faire quelque chose !!" w
Cet article est spécialisé dans " Tout le monde peut créer des livrables en effectuant le même travail dans le même environnement que cet article! </ B>".
Par conséquent, l'explication du contenu technique est mince. (Je suis un débutant en premier lieu, donc je ne peux pas l'expliquer en détail.)
J'aimerais que cet article soit lu par ceux qui ont été frustrés par le développement WEB parce que le front-end est un cou. Souhaitez-vous créer un chat bot ensemble? ??
◆ Prérequis h1>
L'article est créé en partant du principe qu'il est décrit ci-dessous. p>
・ Être en mesure de s'inscrire auprès d'AWS (l'enregistrement des informations de carte de crédit est requis)
* J'utilisais Cloud9, donc j'en ai fait un prérequis. Vous pouvez utiliser l'environnement de développement localement, mais nous vous recommandons d'utiliser Cloud 9 car nous ne voulons pas que les débutants souffrent d'erreurs environnementales.
◆ Procédure de travail h1>
◇ Inscrivez-vous auprès des développeurs LINE et créez un canal pour LINE BOT h2>
![pic008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/82642576-aea9-086f-d0fb-d2110c231610.png)
① Inscrivez-vous auprès des développeurs LINE et créez un canal h3>
Je vais omettre l'explication ici. Vous pouvez accéder à la page officielle du site Web à partir de l'URL indiquée ci-dessous. Veuillez travailler en vérifiant cela. Le nom de la chaîne peut être n'importe quoi, mais c'est le nom qui sera affiché lorsque vous vous inscrivez comme ami. Si vous n'êtes pas particulier à ce sujet, vous pouvez utiliser "Chatbot-kun". ..
https://developers.line.biz/ja/docs/messaging-api/getting-started/#using-console
Je pense que la création du canal est terminée à ce stade, je vais donc continuer à modifier les paramètres du canal.
② Émission de jeton d'accès au canal (à long terme) h3>
Veuillez émettre un jeton d'accès via le bouton dans le cadre rouge.
![pic001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/5102b1cb-0391-776a-724e-ac2fc5e99bd1.png)
Qu'est-ce qu'un jeton d'accès au canal? ?? Si tel est le cas, veuillez consulter la page suivante.
https://developers.line.biz/ja/docs/messaging-api/channel-access-tokens/
En d'autres termes, en résumé, il s'agit de " Informations pour appeler l'API depuis l'application b>".
③ Modifier les paramètres de réponse h3>
Ensuite, nous modifierons les paramètres de réponse. Veuillez modifier les paramètres comme indiqué dans l'image sans penser à quoi que ce soit pour le moment.
![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)
Qu'est-ce qu'un webhook? ?? Si vous êtes curieux, veuillez lire cet article. Vous pouvez m'apprendre si soigneusement qu'il n'est pas exagéré de dire que même un enfant peut le comprendre.
https://kintone-blog.cybozu.co.jp/developer/000283.html
◇ Obtenez la clé API pour "Talk API" h2>
Comme le titre l'indique, nous développons un chat bot utilisant une API appelée "Talk API" développée par Recruit Technologies Co., Ltd. J'aurais pu retourner le perroquet ou le questionnaire BOT, mais j'aimerais utiliser l'API! !! J'en ai fait un chatbot de mon point de vue en tant que débutant.
① Accédez au site officiel et émettez une clé API h3>
Pour utiliser l'API, vous avez besoin d'une clé API. Cette fois, vous pouvez obtenir la clé simplement en enregistrant votre adresse e-mail.
Je pense que vous pouvez l'obtenir sur le site officiel ci-dessous sans aucun colmatage, alors essayez-le.
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)
Construction de l'environnement de développement h2>
① Créer un compte AWS h3>
Ceci est également résumé sur le site officiel, veuillez donc vérifier ici pour les détails et le travail.
https://aws.amazon.com/jp/register-flow/
② Créer un environnement de développement avec Cloud9 h3>
Fondamentalement, la valeur par défaut est correcte, mais changez uniquement la plate-forme en " 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)
Désormais, nous modifierons le code pour implémenter le chatbot. Veuillez continuer en utilisant l'environnement de développement créé ici.
◇ Développement du chat bot h2>
①Installation du package pour PostgreSQL h3>
Cette fois, nous utiliserons PostgreSQL comme base de données à déployer sur Heroku, qui peut être utilisée gratuitement. Exécutez la commande suivante.
bash
sudo apt install libpq-dev
② Créer un nouveau projet Rails h3>
Créez un projet en spécifiant la base de données à installer avec la commande suivante.
bash
rails new <Nom du projet> -d postgresql
③ Créer un contrôleur pour LINE BOT h3>
Accédez à la hiérarchie du projet créé à l'étape "②" et exécutez la commande suivante.
bash
rails generate controller linebot
④ Modifier Gemfile h3>
Ajoutez ce qui suit à la fin du Gemfile et exécutez "bundle install".
Gemfile
gem 'line-bot-api'
gem 'dotenv-rails'
bash
bundle install
⑤ Paramètres de routage h3>
Veuillez copier le contenu suivant dans le fichier cible.
config/routes.rb
Rails.application.routes.draw do
post '/callback' => 'linebot#callback'
end
⑥ Réglage du contrôleur
Veuillez copier le contenu suivant dans le fichier cible.
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
◇ Configurer Git h2>
① Vérifiez l'état de l'installation h3>
Exécutez la commande suivante pour vérifier l'état de l'installation de Git. S'il n'est pas installé, installez-le.
bash
git --version
② Ajouter des paramètres Git h3>
Exécutez la commande suivante pour ajouter les paramètres Git.
bash
git config --global user.name "Nom d'utilisateur"
git config --global user.email "adresse mail"
git init
◇ Créer une application sur Heroku h2>
⓪ Créer un compte Heroku h3>
Cette fois, nous déploierons l'application créée sur Heroku. Tout d'abord, veuillez créer un compte sur le site suivant.
https://id.heroku.com/login
① Installez Heroku h3>
Vérifiez l'état de l'installation avec la commande suivante.
bash
heroku --version
S'il n'est pas installé, exécutez la commande suivante pour vérifier à nouveau l'état de l'installation.
bash
curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
② Connectez-vous à Heroku h3>
Exécutez la commande suivante pour vous connecter. Il vous sera demandé l'adresse e-mail et le mot de passe que vous avez utilisés pour vous inscrire à Heroku, alors entrez-les.
bash
heroku login --interactive
③ Créer une application h3>
Exécutez la commande suivante pour créer une application. Si le nom de l'application est omis, il sera créé avec un nom aléatoire.
bash
heroku create <Nom de l'application>
- Veuillez noter l'URL de l'application car elle sera créée ici.
◇ Ajouter des informations d'application aux paramètres de canal h2>
① Ajoutez l'URL que vous avez notée précédemment aux paramètres de la chaîne h3>
② Ajout / rappel à la fin de l'URL pour appeler l'action de rappel h3>
![pic005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/da882031-a629-50ec-6b62-40be2ae79d35.png)
◇ Déployer sur Heroku h2>
① Ajout de variables d'environnement h3>
Exécutez la commande suivante pour ajouter des variables d'environnement.
bash
heroku config:set LINE_CHANNEL_SECRET=Secret de canal qui peut être confirmé sur l'écran de réglage du canal
heroku config:set LINE_CHANNEL_TOKEN=Jeton d'accès pouvant être confirmé sur l'écran de réglage du canal
heroku config:set TALK_API_KEY=Clé obtenue en postulant pour l'API Talk
② Déployer sur Heroku h3>
Exécutez la commande suivante pour déployer sur Heroku.
bash
git add .
git commit -m "linebot"
git push heroku master
◇ Vérifions le fonctionnement h2>
① Ajouter un ami
Ajoutez un chatbot créé à partir du code QR en tant qu'ami.
![pic006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/9bf9f5c7-dfce-d58e-4907-3ead2973cc81.png)
② Contrôle de fonctionnement
Si vous obtenez une réponse en réponse au message ci-dessous, vous avez réussi! !!
◆ Articles référencés h1>
Voici quelques articles et matériaux qui ont été des informations très utiles lorsque j'ai créé LINE BOT.
□ [Rails] Développons facilement LINE Bot en environ une heure - Questionnaire sur les bases du bot - [Avec image]
https://qiita.com/noriya1217/items/00d6461e9f54900377a3
□ Référentiel du SDK de l'API de messagerie LINE (Ruby)
https://github.com/line/line-bot-sdk-ruby
□ Implémentez les requêtes HTTP Ruby aussi simplement que possible
https://qiita.com/takano-h/items/dd10818eb7e09161bc29