enebularで勤怠メールツールを作ってみる
by
pokiiio
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
enebularで 勤怠メールツールを作ってみる ポキオ
Slide 2
Slide 2 text
ポキオ ● https://pokiiio.github.io/ ● R&D 園児にゃー ● Twitter/GitHub : @pokiiio ● Blog : Androidのメモとか(https://relativelayout.hatenablog.com/)
Slide 3
Slide 3 text
京急が大好き
Slide 4
Slide 4 text
京急ガジェットを いろいろ 作ってます
Slide 5
Slide 5 text
京急は神 (個人の感想です)
Slide 6
Slide 6 text
今日の内容はデブサミ2019とほぼ一緒です ● https://event.shoeisha.jp/devsumi/20190214/session/1967/ photo by @n0bisuke
Slide 7
Slide 7 text
今日の内容はdotstudioさんのブログで公開中 ● https://dotstud.io/blog/pokio-esp-keikyu-chien2/
Slide 8
Slide 8 text
にぎやかし
Slide 9
Slide 9 text
勤怠メールツールを作る
Slide 10
Slide 10 text
簡単にツールを作れる時代 ● 無料で使えるクラウドサービスが整ってきている ○ enebular、IFTTT、IBM Cloud、Google Apps Script、とかとか ● ハードウェアにも手を出しやすい ○ Arduino、Raspberry Pi、MESH、とかとか ● ノンプログラミングでプログラミングができる ○ Node-RED、Scratch、Dialogflow、Noid、とかとか
Slide 11
Slide 11 text
たとえばIFTTT
Slide 12
Slide 12 text
たとえばIFTTT ● 簡単にオートメーション化 ● いろいろなサービスとサービスを連携できる ● 個々のサービスのAPIや実装を考える必要がない ● ほかにも ○ Zapier ○ myThings(なくなっちゃいましたね・・・)
Slide 13
Slide 13 text
if this then that だけでは 物足りないこともありますよね そして簡単に済ませたい
Slide 14
Slide 14 text
そこで Node-RED
Slide 15
Slide 15 text
Node-REDのよさみ ● Node.js上で動作する処理を設計できるツール ● ノードとノードをつなげてデータのフローをグラフィカルに作る ● 他のWebサービスをトリガーにしたり定期実行の処理もかける ● JavaScriptなどで詳細な処理も設計可能
Slide 16
Slide 16 text
簡単な静的サイトならチョッパヤで作れる
Slide 17
Slide 17 text
他サービスとの連携も可能
Slide 18
Slide 18 text
これをつかって作ったものが…
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
仮にJRからの振替輸送受託の影響で 京急線が遅れてイライラしていても シュッと勤怠メールを送れるツール
Slide 21
Slide 21 text
「本当に電車遅延で遅れたの?」と あとからグチグチ言われないために 遅延証明書へのリンクも貼り付ける やさしい機能つき
Slide 22
Slide 22 text
京急の遅延証明書ページをパースして 発行されている遅延証明書のリスト表示
Slide 23
Slide 23 text
遅刻理由を選択すると メール本文が自動で切り替わる
Slide 24
Slide 24 text
遅延証明書へのリンクも貼れますよ
Slide 25
Slide 25 text
ボタンを押してメーラーを起動 メールを送ったら落ち着いて出勤だ!
Slide 26
Slide 26 text
これを実現するためのフロー
Slide 27
Slide 27 text
実際のフロー
Slide 28
Slide 28 text
差出人名や宛先を初期化 HTTPリクエストの度に 京急HPをパースしツールを表示 HTTPエンドポイントを作成 BASIC認証をかけておく CORS対策などのため 外部WebAPI実行用に 別途エンドポイントを作成
Slide 29
Slide 29 text
ポイント① ● 差出人名・宛先を初期化 ○ globalにset ■ global.set('name', 'ポキオ'); ■ global.set('address', '
[email protected]
'); ○ globalからget ■ let name = global.get('name'); ■ let address = global.get('address');
Slide 30
Slide 30 text
ポイント② ● BASIC認証をつける ○ node-red-contrib-httpauth ■ https://flows.nodered.org/node/node-red-contrib-httpauth ○ BASIC認証、Digest認証の設定が可能 ■ 今回はBASIC認証
Slide 31
Slide 31 text
ポイント③ ● 京急様のページを愚直にパース ○ https://delay.keikyu.co.jp/delay/ ○ tableを力技で解析
Slide 32
Slide 32 text
ポイント④ ● CORS対策のためプロキシサーバーみたいなものを作る ○ HTMLムズカシイ ○ POSTを更にPOSTするだけ ○ ResponseノードでAccess-Control-Allow-Originで *を指定してもダメだった
Slide 33
Slide 33 text
実際につかってみた
Slide 34
Slide 34 text
実際につかってみた ● 差出人名をポキオにしたまま送ってしまった(NEW) ○ やっちまった案件 ● 京急はあまり遅れない ○ むしろ、嫁に「〇〇時に帰るよ」 LINEを送る機会のほうが多い ○ そっちを自動化すればよかった ● 寒くてお腹が痛い ○ 腹痛で遅刻することのほうが多い
Slide 35
Slide 35 text
微妙だっていいじゃないか オレオレツールだもの
Slide 36
Slide 36 text
THANK YOU!