Wir haben LINE Bot entwickelt, um die Web-API zu lernen. Dieses Mal erstellen wir einen echoBot, der einen einfachen gesendeten Text so zurückgibt, wie er ist. Entwickeln Sie mit Rails und stellen Sie sie sogar in Heroku bereit.
・ Ruby 2.6.5 ・ Schienen 6.0.3.2 ・ PostgreSQL ・ Heroku
・ Erstellen Sie einen Kanal mit LINE-Entwicklern ・ Erstellen Sie ein Programm für den Bot selbst (Ruby / Rails) ・ In Heroku bereitstellen
Registrieren Sie sich zunächst als LINE-Entwickler. Erstellen Sie dann einen Anbieter und einen Kanal, um den erforderlichen API-Schlüssel zu erhalten. https://developers.line.biz/ja/docs/messaging-api/getting-started/
Erstellen Sie einen Kanal für Bot unter Bezugnahme auf die Formel (oben). Wenn Sie die Arbeit kurz auflisten,
・ Melden Sie sich bei der LINE Developers-Konsole an ・ Geben Sie Ihren Namen und Ihre E-Mail-Adresse ein, um ein Entwicklerkonto zu erstellen
Für die Bot-Entwicklung sind ein Kanalgeheimnis und ein Kanalzugriffstoken erforderlich. Notieren Sie sich dies hier!
Die Datenbank verwendet PostgreSQL, da es auf Heroku bereitgestellt wird.
$Schienen neuer App-Name-d postgresql
$Name der CD-App
$ git init
Verwenden Sie einen Edelstein namens 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
Die Beschreibung an den Controller wurde (kopiert) unter Bezugnahme auf RUBY der offiziellen Linie 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
Melden Sie sich zuerst bei Heroku an, erstellen Sie eine App auf Heroku und stellen Sie sie bereit.
$ heroku config:set LINE_CHANNEL_SECRET=Fügen Sie das Kanalgeheimnis ein, das Sie zuvor hier notiert haben
$ heroku config:set LINE_CHANNEL_TOKEN=Fügen Sie das zuvor notierte Zugriffstoken hier ein
Stellen Sie den Webhook auf die URL mit / callback am Ende der bereitgestellten Adresse ein.
Dies vervollständigt den Echo-Bot. Wenn Sie den Text senden, wird derselbe Text zurückgegeben.
Derzeit wird der Code nach dem Ändern erst wiedergegeben, wenn er bereitgestellt wird Nächstes Mal werde ich ngrok verwenden, um es in einer lokalen Umgebung auszuführen. https://qiita.com/shizu9d/items/42b2cb209b2e23a9af6d
Ich habe auf den folgenden Artikel verwiesen. https://qiita.com/noriya1217/items/00d6461e9f54900377a3
Recommended Posts