川のブログ

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

りんなと雑談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

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

こんにちはかわです。

アドベントカレンダー六日目だった記事です。

イレギュラーが入ったため遅れましたすみません。

kawakawa.hatenablog.com

この記事の続きです。

今回はサーバーを作成したいと思います。

サーバー作成

前提として

Rubyとgitを使える状態にしておいてください。

あと

でやってます。

Herokuアカウントの作成

今回はRubySinatraでHerokuで立てたいと思います

まずHerokuアカウントを作成してください。

www.heroku.com

作成したら以下のサイトを参考にHeroku CLIをインストールしてください。

devcenter.heroku.com

Herokuにアップロード

まず適当なところにファイルを作成します。

mkdir talkBot
cd talkBot

Gemfileの作成

bundle init
vim Gemfile

Gemfileに以下を記述

gem 'sinatra'
gem 'line-bot-api'

その後以下を実行

bundle install

これで必要なgemはインストールしました。

動くことを確認するため、テキストを表示するものを作ります。

main.rb
require 'sinatra'
require 'line/bot'

get '/' do
  "Test Program"
end

ローカル上で実行できることを確認

bundle exec ruby main.rb

この状態で [http://localhost:4567/:title] にアクセスして動くことを確認[f:id:nakanaka1826:20171207225010p:plain]

こんな感じになればOK

つぎにProcfileとconfig.ruを作成

touch Procfile config.ru

それぞれのファイルに以下を記述

Procfile
web: bundle exec rackup config.ru -p $PORT
config.ru
require './main'
run Sinatra::Application

ProcfileはHeroku上で何をするかを記述するファイル。

config.ruはRackのサーバ起動コマンドrackupの設定ファイル。

RackはRubyによるWebアプリケーション開発の

HTTP送受信処理を担当するgemです。

これらのファイルをgit管理します。

git init
git add --all
git commit -m "first commit"

herokuコマンドでHeroku用アプリをHeroku上に作成

heroku create talk-bot-kawa

そしてHeroku上にアプリをプッシュし確認

git push heroku master
heroku open

その際ローカルで動かしたものと画面が同じであればOK

今回は以上になります。

これでHeroku上にサーバーがたてられたので

これをうまくいじってLINEBot側との通信を次回行いたいと思います。

kawakawa.hatenablog.com

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

こんにちはかわです。

アドベントカレンダー五日目に出すはずの記事でした。

ちょっと遅れ気味なんで頑張っていきます。

何がしたいか

唐突に思ったことがあった。

www.rinna.jp

このAIと

dev.smt.docomo.ne.jp

このapi

どんな話をするのだろう?

つくってみよう!!!

LINE Botでやろう

やること

  • LINE Botアカウントを作成
  • webhockをするためのサーバー作成
  • docomo api の開発キーを生成
  • 雑談apiをつかい雑談できるようにする
  • 実際に会話させてみる

以上

やることごとに区切って載せていきます。

LINE Botアカウントの作成

基本は公式のページに従います。

Messaging APIを利用するには

下のリンクにアクセス

LINE Developers

f:id:nakanaka1826:20171206211215p:plain

「Messaging API (ボット) をはじめる」

をクリック

するとログイン画面が出るので、自分のLINEアカウントでログイン

初回ログイン時のみこういう画面が出てくるので登録します。 f:id:nakanaka1826:20171206211634p:plain

プロバイダーの作成

プロバイダーとは、アプリを提供する組織のことらしいです。

自分の名前、企業名などなんでもいいのでいれてください。

f:id:nakanaka1826:20171206211858p:plain

チャンネル作成

こんな画面が出てくるので適当に入力してください。

f:id:nakanaka1826:20171206212219p:plain

作成が完了するとこんな感じの画面が出てきます。

f:id:nakanaka1826:20171206212546p:plain

設定

次に設定をしていきたいと思います。 f:id:nakanaka1826:20171206213030p:plain

これの + アクセストークンの再発行 + Webhock通信 利用する + Botグループトーク参加 利用する

にしてください

WebhockのURLは次回設定します。

f:id:nakanaka1826:20171206213254p:plain

ここでは、

  • 自動応答メッセージ 利用しない にしてください

友だち追加時の挨拶は任意です。

以上でLINEBotのアカウント作成は終了です

part1はこの辺にしときます

part2もすぐあげるのでよろしくお願いします。

kawakawa.hatenablog.com