Help us understand the problem. What is going on with this article?

【LINE bot】初めてのおみくじbot

More than 1 year has passed since last update.

【LINE bot】初めてのおみくじbot

by 4geru
1 / 27

はじめに

  • Line bot勉強会の資料です。
  • このスライドでは環境構築を目的としています。

LINE bot勉強会の流れ

流れ step1 step2 step3
機能 おみくじbot カウントbot 最寄駅検索bot
学ぶこと LINE botの作り方 DB・リッチニュー ボタンアクション・URIスキーマ・外部API

その他TIPS


今回学ぶこと

  • LINE Messaging APIの利用法
  • 乱数を用いた処理

利用環境

環境 利用するもの
言語 ruby
フレームワーク sinatra
Server heroku

必要なパッケージのインストール


Gemfileの作成

$ gem install bundler
$ bundle init 

Gemfileの記述

Gemfile
gem 'sinatra'
gem 'sinatra-contrib'
gem 'rake'
gem 'line-bot-api'

gemのインストール

$ bundle

sinatraが動くかの確認

$ touch app.rb
app.rb
require 'bundler/setup'
Bundler.require

get '/' do
    'true'
end

サーバーを起動

起動した先にtrueが表示されれば大丈夫。

$  bundle exec ruby app.rb

line botを動かす


プログラムの記述

src/line.rbを作成し、line-bot-sdk-rubyのサンプルコードをコピー

$ mkdir src
$ touch src/line.rb 
src
require 'sinatra'
require 'line/bot'

def client
...
...

app.rbからsrc/line.rbを呼び出す

app.rb
require 'bundler/setup'
Bundler.require
require './src/line'
...
...

config.ru

config.ru
require 'bundler'
Bundler.require

require './app'
run Sinatra::Application

gitの作成

git init
git add -A
git commit -m 'initial commit'

herokuの作成

あらかじめherokuのアカウントを作成しておきます。
herokuにログインをし、アプリケーションを作成します。

$ heroku login
$ heroku create _original_application_name_

環境変数の設定

アプリケーションを作成するとアプリケーションのプロジェクトファイルを作成します。
herokuのダッシュボードから
作成したアプリのSettings > Reveal Config Varsで環境変数を設定していきます。
スクリーンショット 2018-03-18 22.45.49.png


botのアカウントを作る

環境変数を設定するために元となるbotを作成します。
LINE developersからMessaging APIを選択しbotを作り始めます。
スクリーンショット 2018-03-16 21.45.24.png


環境変数をとる

次に環境変数をherokuに設定します。
スクリーンショット 2018-03-18 22.46.29.png


LINE_CHANNEL_SECRET

Channel Secretをコピーし、LINE_CHANNEL_SECRETに保存します。
スクリーンショット 2018-03-16 21.47.27.png


LINE_CHANNEL_TOKEN

アクセストークンを発行し、LINE_CHANNEL_TOKENを設定します。有効時間が出て来ますが、24hで大丈夫です。
スクリーンショット 2018-03-16 21.48.00.png


Webhock URL

「利用しない」から「利用する」に変更。
先ほど起動したweb serverのurl+'/callback'をWebhock URLに指定する。
_heroku_app_name_.herokuapp.com/callback


おみくじbotを作る


おみくじの機能

次のようにおみくじのプログラムを実装します。

./src/line.rb
37 if event.message['text'] =~ /おみくじ/
38  message[:text] = 
     ["大吉", "中吉", "小吉", "凶", "大凶"].shuffle.first
39  end

おみくじプログラム解説1

if文で正規表現でパターンマッチングをしています。

if event.message['text'] =~ /おみくじ/

おみくじプログラム解説2

配列の中の順番をランダムに並び替え一番最初の要素を返します。

["大吉", "中吉", "小吉", "凶", "大凶"].shuffle.first

以上でおみくじbotは終了です。

4geru
エンジニア初心者です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away