Upgrade to Pro — share decks privately, control downloads, hide ads and more …

enebularで勤怠メールツールを作ってみる

Bb68ba1b1bc26b73568a5cfd197f8e49?s=47 pokiiio
March 25, 2019

 enebularで勤怠メールツールを作ってみる

Bb68ba1b1bc26b73568a5cfd197f8e49?s=128

pokiiio

March 25, 2019
Tweet

Transcript

  1. enebularで 勤怠メールツールを作ってみる ポキオ

  2. ポキオ • https://pokiiio.github.io/ • R&D 園児にゃー • Twitter/GitHub : @pokiiio

    • Blog : Androidのメモとか(https://relativelayout.hatenablog.com/)
  3. 京急が大好き

  4. 京急ガジェットを いろいろ 作ってます

  5. 京急は神 (個人の感想です)

  6. 今日の内容はデブサミ2019とほぼ一緒です • https://event.shoeisha.jp/devsumi/20190214/session/1967/ photo by @n0bisuke

  7. 今日の内容はdotstudioさんのブログで公開中 • https://dotstud.io/blog/pokio-esp-keikyu-chien2/

  8. にぎやかし

  9. 勤怠メールツールを作る

  10. 簡単にツールを作れる時代 • 無料で使えるクラウドサービスが整ってきている ◦ enebular、IFTTT、IBM Cloud、Google Apps Script、とかとか • ハードウェアにも手を出しやすい

    ◦ Arduino、Raspberry Pi、MESH、とかとか • ノンプログラミングでプログラミングができる ◦ Node-RED、Scratch、Dialogflow、Noid、とかとか
  11. たとえばIFTTT

  12. たとえばIFTTT • 簡単にオートメーション化 • いろいろなサービスとサービスを連携できる • 個々のサービスのAPIや実装を考える必要がない • ほかにも ◦

    Zapier ◦ myThings(なくなっちゃいましたね・・・)
  13. if this then that だけでは 物足りないこともありますよね そして簡単に済ませたい

  14. そこで Node-RED

  15. Node-REDのよさみ • Node.js上で動作する処理を設計できるツール • ノードとノードをつなげてデータのフローをグラフィカルに作る • 他のWebサービスをトリガーにしたり定期実行の処理もかける • JavaScriptなどで詳細な処理も設計可能

  16. 簡単な静的サイトならチョッパヤで作れる

  17. 他サービスとの連携も可能

  18. これをつかって作ったものが…

  19. None
  20. 仮にJRからの振替輸送受託の影響で 京急線が遅れてイライラしていても シュッと勤怠メールを送れるツール

  21. 「本当に電車遅延で遅れたの?」と あとからグチグチ言われないために 遅延証明書へのリンクも貼り付ける やさしい機能つき

  22. 京急の遅延証明書ページをパースして 発行されている遅延証明書のリスト表示

  23. 遅刻理由を選択すると メール本文が自動で切り替わる

  24. 遅延証明書へのリンクも貼れますよ

  25. ボタンを押してメーラーを起動 メールを送ったら落ち着いて出勤だ!

  26. これを実現するためのフロー

  27. 実際のフロー

  28. 差出人名や宛先を初期化 HTTPリクエストの度に 京急HPをパースしツールを表示 HTTPエンドポイントを作成 BASIC認証をかけておく CORS対策などのため 外部WebAPI実行用に 別途エンドポイントを作成

  29. ポイント① • 差出人名・宛先を初期化 ◦ globalにset ▪ global.set('name', 'ポキオ'); ▪ global.set('address',

    'example@example.com'); ◦ globalからget ▪ let name = global.get('name'); ▪ let address = global.get('address');
  30. ポイント② • BASIC認証をつける ◦ node-red-contrib-httpauth ▪ https://flows.nodered.org/node/node-red-contrib-httpauth ◦ BASIC認証、Digest認証の設定が可能 ▪

    今回はBASIC認証
  31. ポイント③ • 京急様のページを愚直にパース ◦ https://delay.keikyu.co.jp/delay/ ◦ tableを力技で解析

  32. ポイント④ • CORS対策のためプロキシサーバーみたいなものを作る ◦ HTMLムズカシイ ◦ POSTを更にPOSTするだけ ◦ ResponseノードでAccess-Control-Allow-Originで *を指定してもダメだった

  33. 実際につかってみた

  34. 実際につかってみた • 差出人名をポキオにしたまま送ってしまった(NEW) ◦ やっちまった案件 • 京急はあまり遅れない ◦ むしろ、嫁に「〇〇時に帰るよ」 LINEを送る機会のほうが多い

    ◦ そっちを自動化すればよかった • 寒くてお腹が痛い ◦ 腹痛で遅刻することのほうが多い
  35. 微妙だっていいじゃないか オレオレツールだもの

  36. THANK YOU!