LINEbot war das erste, was Paper, das gerade das Rails-Tutorial beendet hatte, machen wollte. Der Zweck dieser Zeit ist es, das Verständnis zu vertiefen, indem die bisher für "Repeat Bot" gelernten Dinge verwendet werden, die Zeichen so zurückgeben, wie sie sind. Ich wage es also, mit "Rails + Cloud9 + Heroku" zu entwickeln, ohne praktische Dinge wie GAS zu verwenden.
--LINE Entwicklerkonto & Erstellung neuer Kanäle --Erstelle ein Heroku-Konto --Erstellen Sie die Rails-App in Cloud9
Melden Sie sich zunächst bei LINE Developers an. (https://developers.line.biz/ja/) Wenn Sie neu bei uns sind, können Sie sich ganz einfach mit Ihrem üblichen LINE-Konto registrieren. Registrieren Sie die Anbieterinformationen und erstellen Sie einen neuen Kanal. Weitere Informationen finden Sie in diesem Artikel. (Https://qiita.com/nkjm/items/38808bbc97d6927837cd)
Wenn Sie bereits ein Heroku-Konto erstellt haben, überspringen Sie diesen Schritt und fahren Sie mit dem nächsten Schritt fort. Klicken Sie nach dem Öffnen von Heroku auf die Schaltfläche für die neue Registrierung, um ein Konto zu erstellen. (https://jp.heroku.com/) Sie können es später tun, aber lassen Sie uns Heroku so einrichten, dass es hier auf Cloud9 verfügbar ist. Geben Sie einfach die folgenden Codes nacheinander in das Terminal ein.
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
Wenn Sie sich sicher anmelden können, ist dies in Ordnung. Sie können Heroku jetzt in Ihrer eigenen Entwicklungsumgebung verwenden.
Wenn Sie Rails gelernt haben, erstellen wir schnell eine App mit dem bekannten "Rails new".
terminal
rails new repeat-bot
Dann bearbeiten Sie die Gemfile ein wenig.
Gemfile
gem 'line-bot-api'
group :development do
gem 'sqlite3'← Dies ist der neu hinzugefügte Teil
# 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
Lassen Sie uns den neu hinzugefügten Edelstein installieren.
terminal
bundle install --without production
Sobald Sie diesen Punkt erreicht haben, verwalten wir die Version mit Git.
terminal
git init
Als nächstes verbinden wir die Heroku-App mit der App auf diesen Schienen.
terminal
heroku git:remote -ein Heroku-App-Name
Wenn Sie den Namen der Heroku-App zuvor registriert haben, geben Sie diesen Namen ein. Wenn Sie es nicht geändert haben, wird die Liste der alphanumerischen Zeichen automatisch angezeigt. Geben Sie sie daher ein. (Bestätigen Sie von der Heroku-Seite)
Stellen Sie dann das Heroku bereit, das Sie zuvor registriert haben.
terminal
git add .
git commit -m "init"
Zum Schluss drücken und fertig.
terminal
git push heroku master
Ich werde wiederholt Code für Bot hinzufügen. Erstellen Sie zunächst einen Controller, der Rails vertraut ist.
terminal
rails g controller linebot
Kopieren Sie als Nächstes das Kanalgeheimnis und das Zugriffstoken aus dem diesmal erstellten LINEbot-Verwaltungsbildschirm und fügen Sie sie in das Terminel ein. Bitte füllen Sie wie folgt aus.
terminal
heroku config:set LINE_CHANNEL_SECRET=Dein Kanalgeheimnis
heroku config:set LINE_CHANNEL_TOKEN=Dein Kanal-Token
Bearbeiten Sie den Code so, dass er wiederholt reagiert. Bitte kopieren und einfügen.
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
Lassen Sie uns zum Schluss noch einmal bereitstellen.
terminal
git add .
git commit -m "add linebot_controller"
git push heroku master
Ändern Sie dann im LINEbot-Verwaltungsbildschirm die Webhook-URL in [https://herokuappname.herokuapp.com/callback]. Treten Sie mit ein und Sie sind fertig.
Lassen Sie uns abschließend Zeichen in LINE eingeben und prüfen, ob die Antwort korrekt ist.
Recommended Posts