りんなと雑談apiの会話~part3~
こんにちはかわです。
アドベントカレンダー七日目ですが、一日遅れです。
頑張っていきたいと思います。
前回の記事はこちらです。
docomo api の開発キーを生成
アクセスして新規登録かサインインをしてください
ログイン後、新規API利用申請へ
指示に従って作成してください。
コールバックURLはheroku openで開いたURLに
"/好きな文字列"を入れてください。
自分はcallbackにしました。
Botとサーバーの連携
前回書いたコードを書き換えます。
gemのページのサンプルコードをコピーしました。
main.rb
require 'sinatra' require 'line/bot' get '/' do "Test Program" end 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) 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) when Line::Bot::Event::MessageType::Image, Line::Bot::Event::MessageType::Video response = client.get_message_content(event.message['id']) tf = Tempfile.open("content") tf.write(response.body) end end } "OK" end
サンプルコードを見る限り、オウム返しのコードっぽいですね
これをHerokuにアップします。
cd talkBot git add main.rb git commit -m "change main.rb Parrot word and Image" git push heroku master
環境変数の設定をしたいと思います。
clientメソッドに
"LINE_CHANNEL_SECRET"、"LINE_CHANNEL_TOKEN"
があります。
これらはBotの設定画面に
アクセストークンとChannel Secretがあるのでそれを設定します。
heroku config:set LINE_CHANNEL_SECRET="自分のBotのChannel Secret" heroku config:set LINE_CHANNEL_TOKEN="自分のBotのアクセストークン"
LINE Bot側の設定を変えたいと思います。
WebhockURLを登録してください。
自分の場合 Herokuのアプリのリンク/callback
ですね。
最後に連携できているか確認します
オウム返しができていたらOKです。
今回はこれで終了です。
次回は雑談apiを使えるようにし、実際に話せるようにします。