LINEbot a été la première chose que Paper, qui venait de terminer le tutoriel Rails, a décidé de faire. Le but de ce temps est d'approfondir la compréhension en utilisant les choses qui ont été apprises jusqu'à présent pour "Repeat Bot" qui renvoie les caractères tels qu'ils sont. Alors, j'ose développer avec "Rails + Cloud9 + Heroku" sans utiliser des choses pratiques comme GAS.
Tout d'abord, connectez-vous aux développeurs LINE. (https://developers.line.biz/ja/) Si vous êtes nouveau chez nous, vous pouvez facilement vous inscrire avec votre compte LINE habituel. Enregistrez les informations du fournisseur et créez une nouvelle chaîne. Veuillez consulter cet article pour plus de détails. (Https://qiita.com/nkjm/items/38808bbc97d6927837cd)
Si vous avez déjà créé un compte Heroku, ignorez cette étape et passez à l'étape suivante. Après avoir ouvert Heroku, cliquez sur le nouveau bouton d'enregistrement pour créer un compte. (https://jp.heroku.com/) Vous pouvez le faire plus tard, mais configurons Heroku pour qu'il soit disponible sur Cloud9 ici. Tapez simplement les codes suivants dans le terminal un par un.
terminal
curl -OL https://cli-assets.heroku.com/heroku-linux-x64.tar.gz
tar zxf heroku-linux-x64.tar.gz && rm -f heroku-linux-x64.tar.gz
sudo mv heroku /usr/local
echo 'PATH=/usr/local/heroku/bin:$PATH' >> $HOME/.bash_profile
source $HOME/.bash_profile > /dev/null
Si vous pouvez vous connecter en toute sécurité, c'est OK. Vous pouvez désormais utiliser Heroku dans votre propre environnement de développement.
Si vous avez appris Rails, créons rapidement une application avec le familier "Rails new".
terminal
rails new repeat-bot
Ensuite, modifiez un peu le Gemfile.
Gemfile
gem 'line-bot-api'
group :development do
gem 'sqlite3'← Ceci est la partie nouvellement ajoutée
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
group :production do
gem 'pg'
end
end
Installons le Gem nouvellement ajouté.
terminal
bundle install --without production
Une fois que vous avez atteint ce point, gérons la version avec Git.
terminal
git init
Ensuite, connectons l'application heroku avec l'application sur ce Rails.
terminal
heroku git:remote -un nom d'application heroku
Si vous avez enregistré le nom de l'application Heroku plus tôt, entrez ce nom. Si vous ne l'avez pas modifié, la liste des caractères alphanumériques s'affichera automatiquement, alors saisissez-la. (Confirmer sur la page Heroku)
Déployez ensuite sur le Heroku que vous avez enregistré précédemment.
terminal
git add .
git commit -m "init"
Enfin poussez et terminez.
terminal
git push heroku master
J'ajouterai du code pour Bot à plusieurs reprises. Tout d'abord, créez un contrôleur familier à Rails.
terminal
rails g controller linebot
Ensuite, copiez le secret de canal et le jeton d'accès à partir de l'écran de gestion LINEbot créé cette fois et collez-les dans le terminel. Veuillez remplir comme suit.
terminal
heroku config:set LINE_CHANNEL_SECRET=Le secret de votre chaîne
heroku config:set LINE_CHANNEL_TOKEN=Votre jeton de chaîne
Modifiez le code pour qu'il réponde à plusieurs reprises. Veuillez copier et coller.
routes.rb
Rails.application.routes.draw do
post '/callback' => 'linebot#callback'
end
linebot_controller.rb
class LinebotController < ApplicationController
require 'line/bot'
protect_from_forgery :except => [:callback]
def client
@client ||= Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
def callback
body = request.body.read
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature)
error 400 do 'Bad Request' end
end
events = client.parse_events_from(body)
events.each { |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
}
head :ok
end
end
Enfin, déployons à nouveau.
terminal
git add .
git commit -m "add linebot_controller"
git push heroku master
Ensuite, à partir de l'écran de gestion de LINEbot, modifiez l'URL du Webhook en [https://herokuappname.herokuapp.com/callback] Entrez avec et vous avez terminé.
Enfin, entrons réellement des caractères sur LINE et voyons si la réponse est correcte.
Recommended Posts