有給ダッシュボタンを作ろう

>ポスドク〜〜
>エンジニアリング〜〜
>
>「この記事は、限界中年ポスドクの記述でお送りしております。」

#有給ダッシュボタンを作る

###前置き
超大型連休と言われたGWをはるか昔に通り過ぎ、祝日が1日もない6月に入った今日この頃、皆様いかがお過ごしでしょうか。
私は悲しみにつつまれながら過ごしています。

この記事では、
「休日が無いなら作ればいいじゃない？」
という限界的発想を実現するために、1ミリくらいしかない自分のエンジニアリング能力をもって、Amazon Web Service （AWS） の IoT 1-Click と IoT エンタープライズボタンを利用して有給ダッシュボタンを作成します。

---

###材料と方法
1. [IoT エンタープライズボタン] (https://www.amazon.co.jp/AWS-IoT-%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%82%A4%E3%82%BA%E3%83%9C%E3%82%BF%E3%83%B3-%E2%80%93-%E3%82%92%E3%82%B7%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AB%E3%80%82/dp/B075FPHHGG)
2. スマホ
3. ちょっとしたやる気
4. 1時間くらいの自由な時間

---

###作り方
1. IoT エンタープライズボタンを買うと説明書に「ご利用方法については[AWS IoT 1-Click](https://aws.amazon.com/jp/iot-1-click/)をご覧ください。」と書かれているのでここにアクセスします。
2. AWSのアカウントを作ります。
3. デバイス（IoT エンタープライズボタンのこと）を登録したり、Wi-Fiの設定をしたりします。
この時、スマホにAWS IoT 1-Clickのアプリ（[Apple](https://itunes.apple.com/app/id1315204832),[Google](https://play.google.com/store/apps/details?id=com.amazonaws.oneclick)）を入れていると便利です。
4. プロジェクト（ボタンを押した時の動作の設定）を作ります。
テンプレートが用意されているので、その中からSMSメッセージを送信するを選びます。

5. クリックした時に送信するメッセージを編集する。
スマホのアプリではこの画面のmessageの欄をクリックするとクリック時に送信するメッセージの文面を編集できます。適当かつもっともらしい理由を入れておきます。
またすぐ下のphoneNumberの所には、実用する場合は上司の電話番号を入れますが、開発段階では自分の電話番号を入れておきましょう。
<img width="300" alt="メッセージ.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240748/ff11de6f-444e-cf8a-b003-ff7fb667c2c2.png">
ここまでの手順は結構画面の案内にそってポチポチしているだけでできますが、困ったら参考記事も読んでみてください。（自分も参考にしました。@hayao_kさんありがとうございます。）

6. エンタープライズボタンを押す。
メッセージが届いて、完成です。
<img width="300" alt="デフォルトのコピー.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240748/b7101660-3de8-1dff-49da-1bd9f04d88ef.png">
7. メッセージの完成度を増す。
これまでのステップで有給ダッシュボタンはほぼ完成ですが、メッセージの後ろに謎の（？）英数字が入っているのが気になります。
これを[AWS マネジメントコンソール](https://aws.amazon.com/jp/console/)からLambda関数の編集を行って消します。
AWS マネジメントコンソールにログインすると検索窓があるので、そこにLambdaと入力すると
<img width="1044" alt="スクリーンショット 2019-06-03 22.39.05.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240748/6c76e89a-40f8-645b-ea53-263341901d59.png">
このような画面に飛びます。登録しているアカウントが使っている関数がここにずらっと出てくるようです。有給ダッシュボタンに使っている関数名（iot1clickムニャムニャ）のところをクリックします。
ページの下の方にpythonで書かれたLambda関数を編集できる画面が出てきます。
<img width="908" alt="スクリーンショット 2019-06-03 22.40.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240748/96045217-079c-1e85-e3a3-6b54c043173f.png">
この中の25行目から27行目
<img width="606" alt="スクリーンショット 2019-06-03 22.45.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240748/2a1e7338-18a9-71bf-d967-3d4bb3eae016.png">
この3行を消すか、コメントアウトします。
<img width="645" alt="スクリーンショット 2019-06-03 22.44.47.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240748/86553d34-a757-adfb-c0a7-8490124745c3.png">
（コメントアウト例）
この状態で右上の保存ボタンを押します。

8. 再びエンタープライズボタンを押す。
<img width="300" alt="改造版.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240748/0fcb5410-da23-1b32-bb54-d4bc3c1c4d87.png">
謎の（？）英数字が消えて、あたかも自分で送信したかのようなメッセージが送信されました！！

---

###おわりに
色々な記事でIoT エンタープライズボタンでサクッと色々作れると紹介されていますが、プログラミングなどの技術が少ししかない私でも手軽に作れたので、結構誰でも簡単に有給をダッシュ（奪取）できると思います。
（時間にして1時間くらい。実はこの記事を書いている方が時間がかかっています。）

今後時間があったら、ボタンの押し方やクリック毎で違う理由で休むとかの機能を実装したいと思います。

ちなみに、AWSからのSMSメッセージ送信には日本では1メッセージ\$0.08575くらいかかり、デフォルトではひと月あたり\$1の上限が設けられているので、上限の変更などをしないとひと月に10日程度しか有給ダッシュできません。

高橋名人は遠かった。

また次回〜〜

---

###参考記事
[AWS IoT 1-Click と IoT エンタープライズボタンのセットアップ&動作確認](https://qiita.com/hayao_k/items/d36d4b2579d0bbbe21a9)


---
###更新履歴
2019.06.05
本文中のドルの記号表記についてコメントをいただき、本文を少し修正いたしました。
（@BlueRayiさんありがとうございます。）