りんなと雑談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を使えるようにし、実際に話せるようにします。
りんなと雑談apiの会話~part2~
こんにちはかわです。
アドベントカレンダー六日目だった記事です。
イレギュラーが入ったため遅れましたすみません。
この記事の続きです。
今回はサーバーを作成したいと思います。
サーバー作成
前提として
Rubyとgitを使える状態にしておいてください。
あと
でやってます。
Herokuアカウントの作成
今回はRuby+SinatraでHerokuで立てたいと思います
まずHerokuアカウントを作成してください。
作成したら以下のサイトを参考にHeroku CLIをインストールしてください。
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側との通信を次回行いたいと思います。
りんなと雑談apiの会話~part1~
こんにちはかわです。
アドベントカレンダー五日目に出すはずの記事でした。
ちょっと遅れ気味なんで頑張っていきます。
何がしたいか
唐突に思ったことがあった。
このAIと
このapi
どんな話をするのだろう?
つくってみよう!!!
LINE Botでやろう
やること
以上
やることごとに区切って載せていきます。
LINE Botアカウントの作成
基本は公式のページに従います。
下のリンクにアクセス
「Messaging API (ボット) をはじめる」
をクリック
するとログイン画面が出るので、自分のLINEアカウントでログイン
初回ログイン時のみこういう画面が出てくるので登録します。
プロバイダーの作成
プロバイダーとは、アプリを提供する組織のことらしいです。
自分の名前、企業名などなんでもいいのでいれてください。
チャンネル作成
こんな画面が出てくるので適当に入力してください。
作成が完了するとこんな感じの画面が出てきます。
設定
次に設定をしていきたいと思います。
これの + アクセストークンの再発行 + Webhock通信 利用する + Botのグループトーク参加 利用する
にしてください
WebhockのURLは次回設定します。
ここでは、
- 自動応答メッセージ 利用しない にしてください
友だち追加時の挨拶は任意です。
以上でLINEBotのアカウント作成は終了です
part1はこの辺にしときます
part2もすぐあげるのでよろしくお願いします。