Nous avons développé LINE Bot pour apprendre l'API Web. Cette fois, nous allons créer un echoBot qui renvoie un simple texte envoyé tel quel. Développez avec Rails et déployez même sur Heroku.
・ Rubis 2.6.5 ・ Rails 6.0.3.2 ・ PostgreSQL ・ Heroku
・ Créez une chaîne avec les développeurs LINE ・ Créez un programme pour le Bot lui-même (Ruby / Rails) ・ Déployer sur Heroku
Tout d'abord, inscrivez-vous en tant que développeur LINE. Créez ensuite un fournisseur et un canal pour obtenir la clé API requise. https://developers.line.biz/ja/docs/messaging-api/getting-started/
Créez un canal pour Bot en vous référant à la formule (ci-dessus). Si vous énumérez brièvement le travail,
・ Connectez-vous à la console LINE Developers ・ Entrez votre nom et votre adresse e-mail pour créer un compte développeur -Créer un fournisseur et un canal, spécifier l'API de messagerie à ce moment ・ Émettre un jeton d'accès ・ Désactivez les messages de réponse et activez Webhock
Un secret de chaîne et un jeton d'accès à la chaîne sont nécessaires pour le développement du bot, alors notez-le ici!
La base de données utilise PostgreSQL car elle sera déployée sur Heroku.
$rail le nouveau nom de l'application-d postgresql
$nom de l'application cd
$ git init
Utilisez une gemme appelée line-bot-api.
Gemfile
gem 'line-bot-api'
$ bundule install
config/routes.rb
Rails.application.routes.draw do
post '/callback' => 'linebot#callback'
end
$ rails g controller linebot
La description du contrôleur a été (copiée) en référence à RUBY de la ligne officielle SDK. https://github.com/line/line-bot-sdk-ruby/blob/master/examples/echobot/app.rb
python
class LinebotController < ApplicationController
require 'line/bot' # gem 'line-bot-api'
def client
@client ||= Line::Bot::Client.new { |config|
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
post '/callback' do
body = request.body.read
signature = request.env['HTTP_X_LINE_SIGNATURE']
unless client.validate_signature(body, signature)
halt 400, {'Content-Type' => 'text/plain'}, 'Bad Request'
end
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
message = {
type: 'text',
text: event.message['text']
}
client.reply_message(event['replyToken'], message)
end
end
end
"OK"
end
end
Tout d'abord, connectez-vous à Heroku, créez une application sur Heroku et déployez-la.
$ heroku config:set LINE_CHANNEL_SECRET=Collez le secret de chaîne que vous avez noté plus tôt ici
$ heroku config:set LINE_CHANNEL_TOKEN=Collez le jeton d'accès que vous avez noté précédemment ici
Définissez le webhook sur l'URL avec / callback à la fin de l'adresse déployée.
Ceci termine l'écho-bot. L'envoi du texte renverra le même texte.
Actuellement, après avoir changé le code, il ne sera pas reflété sauf s'il est déployé, donc La prochaine fois, j'utiliserai ngrok pour l'exécuter dans un environnement local. https://qiita.com/shizu9d/items/42b2cb209b2e23a9af6d
J'ai fait référence à l'article suivant. https://qiita.com/noriya1217/items/00d6461e9f54900377a3
Recommended Posts