LINEのbotを作ってみた Powered by Rabbit 2.2.1
LINEのbotを作っ
てみた
鍋太郎
LINEのbotを作ってみた Powered by Rabbit 2.2.1
自己紹介
プログラマー✓
Debian JP 事務局✓
小市若者連 獅子長 ←New✓
http://about.me/nabetaro✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
小市若者連とは
長野市安茂里小市区の市民✓
志奈埜市神社の祭を企画運営✓
獅子舞の補助✓
以下、若連✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
若連の組織構造
総代
委員長など役付✓
✓
獅子方
獅子舞補助✓
✓
世話方
祭の進行など✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
公式連絡手段
LINE
全体のLINEグループ✓
個別のLINEグループ
出欠確認など✓
繰り返しの連絡多い✓
✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
bot欲しい
出欠システムへのURLを通知✓
手動は面倒✓
botによる自動化✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
まずは開発者登録
https://developers.line.me✓
専用のアカウントを取る?✓
普段使いのアカウントでも
開発者名を登録✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
botのためのAPI
Messaging API✓
Channelを作る✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
STEP1
プロバイダー選択
新規作成も可✓
✓
サービス提供者名✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
STEP2
Messaging APIの情報設定✓
アプリ名
ユーザ名に相当✓
✓
プラン
Developer Trial✓
フリー✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
プラン
Messaging API 利用可
Developer Trial✓
フリー (push不可)✓
ベーシック (push不可)✓
プロ(API)
Developer Trialで
✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
Channel完成
以下の情報を払い出して控える
Channel Secret✓
アクセストークン✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
準備まとめ
Messaging API 利用✓
アプリ名を決める✓
プランを決める✓
Secret とトークンを作る✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
実装
Ruby
https://github.com/nabetaro/line-notice-bot
✓
line-bot-api gem✓
Webアプリを作る
今回は sinatra✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
line-bot-api
環境変数に控えた情報を設定
LINE_CHANNEL_SECRET✓
LINE_CHANNEL_TOKEN
@client = Line::Bot::Client.new do |config|
config.channel_secret = ENV['LINE_CHANNEL_SECRET']
config.channel_token = ENV['LINE_CHANNEL_TOKEN']
end
@client.push_message(PUSH_ID, メッセージ)
✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
メッセージ送信
イベントに対するreply
イベントトークンが必要✓
✓
送信先を指定したpush
送信先グループID/ユーザIDが必要
イベントから取得する✓
✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
イベントの受け取り方
コールバックURLの処理✓
events = @client.receive_event(request)
events.each { |event|
case event
when Line::Bot::Event::Message
logger.info event['source'].inspect
end
}
LINEのbotを作ってみた Powered by Rabbit 2.2.1
events
Webhookオブジェクトの配列
https://developers.line.me/ja/docs/messaging-api/reference/#webhook
✓
今回PUSH_IDを手動で設定
普通はtype=joinのイベントの
sourceから取得しDBあたりに入れ
ておくのがよさそう
✓
✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
できあがり
eventのソースをログに記録し
続ける
✓
実際の送信はスケジューラーで
別コマンド起動
✓
しょぼい
LINEのbotを作ってみた Powered by Rabbit 2.2.1
あとは
作ったボットを友達に登録する✓
ボットをグループに招待する✓
メッセージが流れるごとに
PUSH_IDが得られる
PUSH_IDを環境変数に設定✓
✓
スケジューラーを設定✓
LINEのbotを作ってみた Powered by Rabbit 2.2.1
感想
思った以上に簡単だった
賞味100行以下✓
ライブラリが充実している?✓
✓
DBを用意しておけば、もう少
しやりようがある?
✓

LINEのbotを作ってみた

  • 1.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 LINEのbotを作っ てみた 鍋太郎
  • 2.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 自己紹介 プログラマー✓ Debian JP 事務局✓ 小市若者連 獅子長 ←New✓ http://about.me/nabetaro✓
  • 3.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 小市若者連とは 長野市安茂里小市区の市民✓ 志奈埜市神社の祭を企画運営✓ 獅子舞の補助✓ 以下、若連✓
  • 4.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 若連の組織構造 総代 委員長など役付✓ ✓ 獅子方 獅子舞補助✓ ✓ 世話方 祭の進行など✓ ✓
  • 5.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 公式連絡手段 LINE 全体のLINEグループ✓ 個別のLINEグループ 出欠確認など✓ 繰り返しの連絡多い✓ ✓ ✓
  • 6.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 bot欲しい 出欠システムへのURLを通知✓ 手動は面倒✓ botによる自動化✓
  • 7.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 まずは開発者登録 https://developers.line.me✓ 専用のアカウントを取る?✓ 普段使いのアカウントでも 開発者名を登録✓ ✓
  • 8.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 botのためのAPI Messaging API✓ Channelを作る✓
  • 9.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 STEP1 プロバイダー選択 新規作成も可✓ ✓ サービス提供者名✓
  • 10.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 STEP2 Messaging APIの情報設定✓ アプリ名 ユーザ名に相当✓ ✓ プラン Developer Trial✓ フリー✓ ✓
  • 11.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 プラン Messaging API 利用可 Developer Trial✓ フリー (push不可)✓ ベーシック (push不可)✓ プロ(API) Developer Trialで ✓ ✓
  • 12.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 Channel完成 以下の情報を払い出して控える Channel Secret✓ アクセストークン✓ ✓
  • 13.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 準備まとめ Messaging API 利用✓ アプリ名を決める✓ プランを決める✓ Secret とトークンを作る✓
  • 14.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 実装 Ruby https://github.com/nabetaro/line-notice-bot ✓ line-bot-api gem✓ Webアプリを作る 今回は sinatra✓ ✓
  • 15.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 line-bot-api 環境変数に控えた情報を設定 LINE_CHANNEL_SECRET✓ LINE_CHANNEL_TOKEN @client = Line::Bot::Client.new do |config| config.channel_secret = ENV['LINE_CHANNEL_SECRET'] config.channel_token = ENV['LINE_CHANNEL_TOKEN'] end @client.push_message(PUSH_ID, メッセージ) ✓ ✓
  • 16.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 メッセージ送信 イベントに対するreply イベントトークンが必要✓ ✓ 送信先を指定したpush 送信先グループID/ユーザIDが必要 イベントから取得する✓ ✓ ✓
  • 17.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 イベントの受け取り方 コールバックURLの処理✓ events = @client.receive_event(request) events.each { |event| case event when Line::Bot::Event::Message logger.info event['source'].inspect end }
  • 18.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 events Webhookオブジェクトの配列 https://developers.line.me/ja/docs/messaging-api/reference/#webhook ✓ 今回PUSH_IDを手動で設定 普通はtype=joinのイベントの sourceから取得しDBあたりに入れ ておくのがよさそう ✓ ✓
  • 19.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 できあがり eventのソースをログに記録し 続ける ✓ 実際の送信はスケジューラーで 別コマンド起動 ✓ しょぼい
  • 20.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 あとは 作ったボットを友達に登録する✓ ボットをグループに招待する✓ メッセージが流れるごとに PUSH_IDが得られる PUSH_IDを環境変数に設定✓ ✓ スケジューラーを設定✓
  • 21.
    LINEのbotを作ってみた Powered byRabbit 2.2.1 感想 思った以上に簡単だった 賞味100行以下✓ ライブラリが充実している?✓ ✓ DBを用意しておけば、もう少 しやりようがある? ✓