SlideShare a Scribd company logo
Java で LINE BOT 作った話
JAZUG福岡 2017#1
Daisuke Hirata (@daichan4649)
Daisuke Hirata (@daichan4649)
● 株式会社アバンテクニカ
○ 受託開発
○ 講師業
● Java、Android、Go
● GAE、Google Apps Script
● Jazz Vocal
● プログラマってこんなかんじ??
趣味でこんな LINE BOT 作りました
Java で LINE BOT 作った話
福岡のジャズスポットの
スケジュールを横断検索できる
BOT
● 「福岡」の JAZZ 好き
● 「福岡」の JAZZ プレイヤー
ターゲット
超ニッチ
解消したかったこと
欲しい情報になかなかたどりつけない
● 仕事帰りにサイトを見てまわるのがつらい
○ お店のサイト
○ blog
○ SNS (facebook、twitter・・)
● 横断検索できたらうれしい
デモ
リリース
● アルファ版リリース (BOT API Trial)
○ 2016/5/3 公開
○ 登録ユーザ数 50人 (上限値!)
● 正式版リリース (Messaging API)
○ 2016/10/24 公開
○ 登録ユーザ数 130人 (2017/2/8 時点)
○ 50 アクセス程度 / 日
月末、月初めにスケジュールデータを更新
● つらくない (自動化済)
○ スクレイピング可能なサイト
○ Google Calendar 使ってるお店
● つらい (人力)
○ スクレイピング不可なサイト
○ 店主にヒアリング
開発
とにかく開発スピード重視
● すぐに完成、実現させたかった
● 自分のメイン言語が Java
● Google 系サービスと連携しやすそう
● そんな軽い気持ちで GAE/J (standard environment) を選定
どうだった?
選定ミスった
GAE/Jとの戦いの記録
GAE/J とは
● standard environment ← こちらを選定
○ 環境自由度少ない(無料枠多い)
● flexible environment
○ 環境自由度高い(札束駆動)
GAE/J とは
● スピンダウン
○ アクセス数なくなるとインスタンス落ちする
● スピンアップ
○ アクセスがあるとインスタンス起動する
つらい (開発環境)
● standard environment は Java6、Servlet2.5 固定
● 開発者的にさびしい
つらい (開発環境)
● LINE 社が公開してくれている line-bot-sdk が使えない
○ Java8、Spring Boot 前提で実装されている
○ GAE/J に Spring Boot 載せれるけど・・スピンアップが・・
つらい (スピンアップ)
● スピンダウン→スピンアップが前提
● Java のスピンアップは特に遅い (資料 *3)
○ Java は 3.8 秒
○ Go は 0.3 秒
○ ということは BOT の応答が・・・
● スピンダウンしないくらいアクセス数あれば大丈夫?
つらい (固定IP ではない)
● スピンアップ時に IP アドレスが変わる可能性あり
● 現在(2017/2/8 時点)は固定 IP でなくても大丈夫
● 仕様が変わらないか不安
● Trial 版では 固定 IP 必須だった
ざっくり構成
● JAX-RS (Jersey2)
○ LINE とのやり取り(callback)
○ RESTful API (スケジュールデータの CRUD)
● DataStore (Objectify)
● スクレイピング (Jsoup)
○ 各サイトのスケジュールデータ取得
LINE BOT の理想のバックエンド
● インスタンス落ちしない or 起動が速い
● Java だと Java8、Servlet3 系
○ 最近のライブラリ導入しやすい
● 固定 IP 可
○ いまは大丈夫だが、仕様がいつ変わるかわからない
○ Trial 時は 固定IP 必須だった
こういうのがいい
● 札束で GAE (flexible environment)
● 札束で heroku
● 札束で Azure
候補 (Java で本気運用するなら)
最後に
BOT を実際に運用してみて
● LINE はインターフェースとしては最高
○ スマホ (iPhone/Android)
○ ガラケー (一部)
● 別途インストール不要なので導入しやすい
○ 友だち登録だけで OK
○ 実際に導入してもらえたのはこのあたりは大きい
BOT を実際に運用してみて
● BOT 自体はわりと簡単に作れる
○ サーバサイドによっては 非エンジニア でも可能では?
● 自分で作ったものが身近な人に使ってもらえる喜び
○ 簡単に導入してもらえる → 反応がもらえる
○ こんなに開発モチベーションがあがったのは久しぶりだった
登録してご意見いただけるとうれしいです
公式サイト(facebook)
● 登録方法
○ LINE 起動
○ 友だちとして追加 (QRコード読込)
1. 2016年半ば現在のGoogle App Engine
2. 個人的に最強のPaaSプラットフォームGoogle App Engineの良い所を挙げてみる
3. GAE/go+ginとGAE/java+servletでそれぞれスピンアップの速度差をゆる〜く確認する
4. 大量メッセージが来ても安心な LINE BOTサーバのアーキテクチャ
5. [github] line-bot-sdk-java
資料

More Related Content

PDF
Firefox osでlineは作れるか
PDF
gemの複数バージョンカジュアルテスト #shibuyarb
PDF
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
PDF
Yohoushi
PDF
【ITベンチャーを支えるテクノロジー】Lang 8についての話|株式会社lang-8
PDF
Lt駆動開発03 サイト運営してみた結果
PPTX
季刊 競技プログラミングは役に立たない
PPTX
Rails Girls Tokyo 5th
Firefox osでlineは作れるか
gemの複数バージョンカジュアルテスト #shibuyarb
プリキュアのRuby実装の紹介 (2015 ver) #MeguroStartup
Yohoushi
【ITベンチャーを支えるテクノロジー】Lang 8についての話|株式会社lang-8
Lt駆動開発03 サイト運営してみた結果
季刊 競技プログラミングは役に立たない
Rails Girls Tokyo 5th

Viewers also liked (20)

PPTX
ノンコーディングでLINE BOTを作ってみた話
PPTX
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
PDF
VOLIA LAUNCHES INTERACTIVE TELEVISION
DOCX
Project outline
PDF
My pitch
PPT
Kpr präs webtest2
PPT
Masa Depanku Stefanie 6c
PPTX
start recycling
PDF
Speadster
DOCX
Harry: "Community Garden"
PPT
Beready
PDF
Green_shopping
PPTX
Imperialism day9.2012
 
PDF
VOLIA Smart HD: continue our journey to TV of future! (Nov 2013)
PPT
latest slide
PPTX
Playground - 22nd March
PPT
PPT
Etwinning e ricaduta sul territorio
ノンコーディングでLINE BOTを作ってみた話
Webデザイナーの私がMicrosoft Azureを使うようになったワケ
VOLIA LAUNCHES INTERACTIVE TELEVISION
Project outline
My pitch
Kpr präs webtest2
Masa Depanku Stefanie 6c
start recycling
Speadster
Harry: "Community Garden"
Beready
Green_shopping
Imperialism day9.2012
 
VOLIA Smart HD: continue our journey to TV of future! (Nov 2013)
latest slide
Playground - 22nd March
Etwinning e ricaduta sul territorio
Ad

Similar to Java で LINE BOT 作った話 (10)

PPTX
簡単に試せるMicrosoft Cognitive Service! Face APIはヴィジュアル系メイクに勝てるのか???
PDF
GAE/GoでLINE Messaging API を使う
PPT
日本Androidの会 横浜支部 ABC summer
PDF
ライブコーディング・Androidのライブラリを作ってみよう
PDF
WordCamp Yokohama2010 プレゼン
PDF
メイキング・オブ・ザ・さっぽろ保育園マップ
PDF
【Qp08】ざびたん2リリース報告lt 20111022
PPTX
【kintone Cafe 名古屋】kintone×○○○の可能性
PDF
20170131 新潟セミナー
PPTX
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた
簡単に試せるMicrosoft Cognitive Service! Face APIはヴィジュアル系メイクに勝てるのか???
GAE/GoでLINE Messaging API を使う
日本Androidの会 横浜支部 ABC summer
ライブコーディング・Androidのライブラリを作ってみよう
WordCamp Yokohama2010 プレゼン
メイキング・オブ・ザ・さっぽろ保育園マップ
【Qp08】ざびたん2リリース報告lt 20111022
【kintone Cafe 名古屋】kintone×○○○の可能性
20170131 新潟セミナー
【Web系最高って言うけど本当なの?】siの5次請けから離脱したエンジニアが話してみた
Ad

Java で LINE BOT 作った話