BMXUG 市川 IT 勉強会
LINE でお絵描きメッセージを送ってみよう
2019.05.19 #bmxug
あらかじめテキストエディ
タを
インストールしておいてく
ださい!
例: サクラエディタ、
CotEditor 、・・
自己紹介
本アイ・ビー・エム クラウドエバンジェリスト
witter: @dotnsf
og: http://dotnsf.blog.jp/
mail: dotnsf@jp.ibm.com
趣味: マンホール
木村 桂(きむら けい)
プログラマー
マンホールマップ : http://manholemap.juge.me/
大まかな流れ
0. 諸準備
• IBM Cloud へログイン
• cf ツールインストール
• LINE Developer アカウント
1. IBM Cloudant の用意
• 画像データベース
2. Node.js アプリケーションのデプロイ
• お絵描きアプリケーション
3. LINE Developer での操作
• LINE アプリとの連動設定
0. 諸準備
システム構成
トークルーム
Node.js
画像 DB
LIFF
LIFF(LIne Front-end Framework) によって
LINE アプリの中でお絵描きウェブアプリを呼び出し、
LINE とシームレスに連携して画像をトークルームに送信する
IBM Cloud へログイン (1)
https://cloud.ibm.com/
IBM Cloud へログイン (2)自分のアカウント名になっていることを確認
cf ツールインストール
https://github.com/cloudfoundry/cli/releases
自分の利用環境にあったものを選んでダウンロード&インストール
LINE Developers(1)
https://developers.line.biz/ja/
LINE Developers(2)
LINE Developers(3)
LINE Developers(4)
「確認する」 → 「作成する」 でプロバイダーを作成
プロバイダー名(個人名)を入力
LINE Developers(5)
プロバイダー名を選択
LINE Developers(6)
新規にチャネルを作成
LINE Developers(7)
Messaging API を選択
LINE Developers(8)
LINE Developers(9)
※ アプリ名に "LINE" が含まれては駄目、らしいです
LINE Developers(10)
LINE Developers(11)
1. IBM Cloudant の準備
IBM Cloudant の準備 (1)
Cloudant サービスを未作成の場合
IBM Cloudant の準備 (2)
IBM Cloudant の準備 (3)
IBM Cloudant の準備 (4)
IBM Cloudant の準備 (5)
IBM Cloudant の準備 (6)
IBM Cloudant の準備 (7)
IBM Cloudant の準備 (8)
IBM Cloudant の準備 (9)
IBM Cloudant の準備 (10)
IBM Cloudant の準備 (11)
IBM Cloudant の準備 (12)
この中の( username と password の)値を後で使います
IBM Cloudant の準備 (13)
右クリック
2. Node.js アプリケーションのデプ
ロイ
Node.js アプリケーションのデプロイ (1)
Node.js アプリケーションのデプロイ (2)
Node.js アプリケーションのデプロイ (3)
ダラスを選択
他の人が使っていないアプリ名(例 名前 -lineoekaki )
128 MB または 64MB を選択
Node.js アプリケーションのデプロイ (4)
Node.js アプリケーションのデプロイ (5)
https://github.com/dotnsf/line_liff_doodle
git clone するか、 download して展開
Node.js アプリケーションのデプロイ (6)
(デスクトップ上にそのまま展開したと仮定して以降を説明します)
Node.js アプリケーションのデプロイ (7)
settings.js をテキストエディタで開く
Node.js アプリケーションのデプロイ (8)
exports.db_username の値を cloudant の接続情報で確認した username の値に、
exports.db_password の値を同 password の値に書き換えて保存。
Node.js アプリケーションのデプロイ (9)
Node.js アプリケーションのデプロイ
(10)
> cd Users (ユーザー名) Desktopline_liffdoodle-master
cd と入力してから
エクスプロラーのフォルダ部分を
ドラッグ&ドロップして Enter キー
Node.js アプリケーションのデプロイ
(11)
> cf login -a https://api.ng.bluemix.net/ -u ( IBM Cloud のログイン名)
パスワードなどを入力
Node.js アプリケーションのデプロイ
(12)
> cf push (アプリ名)
(おまけ) LIFF とその挙動につ
いて
LIFF (LIne Front-end Framework) とは?
• 2018 年6月に LINE から提供が開始された、比較的新しい
Messaging API
• 従来の Messaging API では主に bot を作るための、バックエンドの機
能が提供されていた
• LIFF はその名の通りフロントエンドの機能が提供され、 LINE の利用者
の権限で実行することができる
• スマホの LINE アプリから外部のウェブアプリを呼び出し、そ
のウェブアプリから呼び出し元の LINE アプリ(のトークルー
ム)でメッセージを送信することができる
• ブラウザ用の JavaScript SDK が提供されている
システム構成
Node.js
画像 DB
トークルーム
LIFF
LIFF SDK を使って、
ウェブアプリケーション上からトークルームやユーザーの情報を取得し、
またトークルームへメッセージを送信することができるようになる
SDK(JavaScript ファイル)
( SDK を外部読み込み)
https
LIFF の特徴
• ブラウザ上の JavaScript を使って LINE トークルームへメッセー
ジ送信ができる
• メッセージはテキストだけでなく、画像や動画、スタンプ、位置情報なども
可
• 画像の場合、 URL がインターネット上に公開されている必要がある
• 送信する人は LIFF URL をタップしたユーザー、送信先は元のトーク
ルーム
• LIFF URL で起動するウェブアプリケーションは https 対応している
必要あり
• ドメイン取得、証明書の発行、ウェブアプリケーションサーバーの SSL 対
応、・・
• IBM Cloud (PaaS) を使うと特に意識しなくても大丈夫 d(^^)
今回 IBM Cloud 上で動かすアプリケー
ション
• HTML5 の Canvas 上に(マウスや)タッチでお絵かきするアプ
リケーション
• 元はこれ : https://github.com/dotnsf/html5pen
• マウスイベントやタッチイベントをハンドリングして座標点を線で結
ぶ
• POST ボタン送信時に Canvas の内容を画像化して保存し、その URL
を指定して LIFF で sendMessages() と closeWindow() を実行し、「画
像を添付して送信し終了」する
• ストローク単位のアンドゥ&リドゥまでは実装
• 今日のハンズオンの(ざっくりな)内容はブログでも紹介
• http://dotnsf.blog.jp/archives/1073002287.html
• http://dotnsf.blog.jp/archives/1073088825.html
LIFF を使ったメッセージポスト
1. ウェブアプリの中に以下を記述( SDK をロード)
<script src="https://d.line-scdn.net/liff/1.0/sdk.js"></script>
2. ページロード後に JavaScript で以下を実行して初期化
<script>
liff.init( data => {}, err => {} );
</script>
3. 以下のコードで LINE にメッセージ送信
<script>
var data = { type: "text", text: " こんにちは " };
liff.sendMessages( [ data ] );
</script>
画像を添付する場合は以下のように変更
var data = {
type: "image",
originalContentUrl: " 画像の URL",
previewImageUrl: " サムネイル画像の URL"
};
liff.sendMessages( [ data ] );
2. Node.js アプリケーションのデプロイ(の続
き)
Node.js アプリケーションのデプロイ
(13)
↑ 上記のような状態になればデプロイ成功
Node.js アプリケーションのデプロイ
(14)
Node.js アプリケーションのデプロイ
(15)
ブラウザ上でお絵描きアプリが動くことを確認
Node.js アプリケーションのデプロイ
(16)
線の色
線の太
さ
背景色
に設定
アンド
ゥ
リドゥ
初めから
やり直し
送信
※ この時点ではまだ「送信」できません
履歴
※ スマホからのみ利用可
3. LINE Developer での操作
LINE Developer での操作 (1)
LINE Developer での操作 (2)
LINE Developer での操作 (3)
LINE Developer での操作 (4)
LINE Developer での操作 (5)
LIFF URL をなんとかして自分の LINE に(自分のスマホに)送る。
LINE のどこかのトークルーム内のメッセージにする
LINE Developer での操作 (6)
LINE Developer での操作 (7)
LIFF URL を友人と共有して遊ぶ
お願い! 良さ気な作品ができたら(できなくても)、
画像をコピー&ペーストして
#bmxug タグを付けて
Twitter でもつぶやいてください!
この後の記念撮影時の背景にします。。。
(おまけ)ソースコードについて
興味がある方はソースコードを改良してみて
!
(1) app.js
- お絵描き画像の DB 保存
- お絵描き画像の取り出し
(2) public/index.ejs
- アプリケーションのユーザーインターフェース (HTML)
- LIFF SDK を使った LINE への画像送信
① お絵描き画像送信
② 画像格納
③ 画像 URL 返却
LIFF
④LIFF SDK を使って
  LINE に画像送信
実質的なソースコードはファイル2つのみ
(おまけ)今後について
IT に興味を持つきっかけに・・・
感想、要望、等々・・・を
#bmxug タグを付けてでツイートしてください!
Q & A
BMXUG 市川 IT 勉強会
LINE でお絵描きメッセージを送ってみよう
2019.05.19 #bmxug

More Related Content

PPT
LINE お絵描きアプリハンズオン
PPT
LINE お絵描きハンズオン 2019.04.26
PDF
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...
PDF
続Xamarinはじめました
PPTX
MTDDC 2019 LINE ボットからみた MT Data API の可能性
PDF
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
PPTX
Introducing my personal / original CAPTCHA implement
PPTX
ThinkPad を自慢できると聞いてやってきました
LINE お絵描きアプリハンズオン
LINE お絵描きハンズオン 2019.04.26
Azure Webinar: Microsoft Bot Framework と Cognitive Services LUIS で実現する自然言語解析B...
続Xamarinはじめました
MTDDC 2019 LINE ボットからみた MT Data API の可能性
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Introducing my personal / original CAPTCHA implement
ThinkPad を自慢できると聞いてやってきました

More from K Kimura (20)

PPTX
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
PPTX
「プライベート版 Heroku」の "dokku" は Cloud Foundry 代替としてどこまで使えるか?
PPTX
LINE お絵描きスタンプが NFT 対応するかも
PDF
ICFO2021 コロナ時代のオンラインハンズオン体験
PPTX
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
PPTX
マンホールマップ10周年 20200725
PPT
MashupAward6 Manholemap(2010)
PPT
スライドパズルハンズオン資料
PPTX
ユーザー投稿型位置情報プロットシステム - マンホールマップ
PPT
Scratch でゲームプログラミング
PPTX
空耳アワーマシーンを作ってみた
PPTX
生まれ変わるマンホールマップ
PPT
地図データでレースゲームを作って遊ぼう!
PPT
AI先生と外国語会話を練習しよう!
PPTX
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
PPT
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
PPT
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
PDF
ブロックチェーン体験 「ブロックを作って、チェーンでつないで、理解しよう!」
PDF
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
PPT
Web Audio API と IBM Watson Speech to Text の話
IBM FamilyDay 2022 - 帰ってきた LINE 手描きスタンプ
「プライベート版 Heroku」の "dokku" は Cloud Foundry 代替としてどこまで使えるか?
LINE お絵描きスタンプが NFT 対応するかも
ICFO2021 コロナ時代のオンラインハンズオン体験
IBM Family Day 2020 - LINE で手描きスタンプに挑戦!
マンホールマップ10周年 20200725
MashupAward6 Manholemap(2010)
スライドパズルハンズオン資料
ユーザー投稿型位置情報プロットシステム - マンホールマップ
Scratch でゲームプログラミング
空耳アワーマシーンを作ってみた
生まれ変わるマンホールマップ
地図データでレースゲームを作って遊ぼう!
AI先生と外国語会話を練習しよう!
IBM Watson IoT を用いた遠隔ゲームコントローラーと Node-RED による簡易カスタマイズによる実現
「テトリスを作ってスマホで振って遊ぼう!」ハンズオン資料
Hyperledger Hands-on 2019-03-30 @ Singularity HIVE
ブロックチェーン体験 「ブロックを作って、チェーンでつないで、理解しよう!」
IBM Cloudant の細かすぎて伝わりにくい機能(その2) データの変更履歴が自動管理できるらしい
Web Audio API と IBM Watson Speech to Text の話
Ad

Recently uploaded (8)

PDF
1分でわかるMSOL(エムソル)________________________
PDF
ROXX概要資料
PDF
【スタートアップ向け】waypoint venture partners1partners1号ファンドのご紹介_v1.4.pdf
PDF
This document is a company profile for Drecom Co., Ltd.
PPTX
高知OOH媒体活用<アナログ×デジタルの融合戦略により、ブランディングで他社より一歩リードする手法>
PDF
11期MAKERS事前説明会全校生徒、革命児次世代のイノベーションが集い.pdf
PDF
カーボンナノチューブ(CNT)、グローバルトップ10企業のランキングと市場シェア.pdf
PDF
STRARTS Inc. COMPANY INFORMATION [NOW WE ARE HIRING]
1分でわかるMSOL(エムソル)________________________
ROXX概要資料
【スタートアップ向け】waypoint venture partners1partners1号ファンドのご紹介_v1.4.pdf
This document is a company profile for Drecom Co., Ltd.
高知OOH媒体活用<アナログ×デジタルの融合戦略により、ブランディングで他社より一歩リードする手法>
11期MAKERS事前説明会全校生徒、革命児次世代のイノベーションが集い.pdf
カーボンナノチューブ(CNT)、グローバルトップ10企業のランキングと市場シェア.pdf
STRARTS Inc. COMPANY INFORMATION [NOW WE ARE HIRING]
Ad

LINE お絵描きアプリハンズオン 20190519