<Pour les super débutants> Pourquoi ne créez-vous pas un chat bot en utilisant "Talk API"? ?? [Ruby on Rails]

◆ Audience cible de cet article

☆ 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 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 ". 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 .

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

L'article est créé en partant du principe qu'il est décrit ci-dessous. ・ Ê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

◇ Inscrivez-vous auprès des développeurs LINE et créez un canal pour LINE BOT ![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 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) 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 ".

③ Modifier les paramètres de réponse 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" 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 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

① Créer un compte AWS 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 Fondamentalement, la valeur par défaut est correcte, mais changez uniquement la plate-forme en " 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)

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

①Installation du package pour PostgreSQL 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 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 Accédez à la hiérarchie du projet créé à l'étape "②" et exécutez la commande suivante.

bash


rails generate controller linebot

④ Modifier Gemfile 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 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

① Vérifiez l'état de l'installation 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 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

⓪ Créer un compte Heroku 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 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 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 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

① Ajoutez l'URL que vous avez notée précédemment aux paramètres de la chaîne

② Ajout / rappel à la fin de l'URL pour appeler l'action de rappel ![pic005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/704750/da882031-a629-50ec-6b62-40be2ae79d35.png)

◇ Déployer sur Heroku

① Ajout de variables d'environnement 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 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 ① 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! !! pic007.png

◆ Articles référencés 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

Enfin Merci d'avoir regardé jusqu'à la fin. Je vous serais reconnaissant de bien vouloir souligner les points de préoccupation dans les commentaires.

Recommended Posts