川のブログ

川の適当気ままなブログです。 

りんなと雑談apiの会話~part3~

こんにちはかわです。

アドベントカレンダー七日目ですが、一日遅れです。

頑張っていきたいと思います。

前回の記事はこちらです。

kawakawa.hatenablog.com

docomo api の開発キーを生成

dev.smt.docomo.ne.jp

アクセスして新規登録かサインインをしてください

ログイン後、新規API利用申請へ

f:id:nakanaka1826:20171208005820p:plain

指示に従って作成してください。

コールバックURLはheroku openで開いたURLに

"/好きな文字列"を入れてください。

自分はcallbackにしました。

Botとサーバーの連携

前回書いたコードを書き換えます。

gemのページのサンプルコードをコピーしました。

github.com

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側の設定を変えたいと思います。

f:id:nakanaka1826:20171206213030p:plain

WebhockURLを登録してください。

自分の場合 Herokuのアプリのリンク/callback

ですね。

最後に連携できているか確認します

f:id:nakanaka1826:20171208234427p:plain

オウム返しができていたらOKです。

今回はこれで終了です。

次回は雑談apiを使えるようにし、実際に話せるようにします。

kawakawa.hatenablog.com