技術書典で本が売れたらAWS IoT ボタンを押してSlackに通知できるようにしました!
少しリアクションされて嬉しい〜😁技術書典で本が売れるたびにAmazon dashボタンを押してslackに通知できるようにしました〜!!!
— omuriceman@技術書典え28 (@iijima_wataru) 2019年4月4日
これで遅れて参加してくるメンバーも売れ行きがわかるはず!!
(少し反応が遅い。。。)#技術書典 #lambda pic.twitter.com/Z4EIcri64u
2019年4月14日の技術書典6に向けて色々と準備をしております。 今回は途中から来場してくるメンバーに売れ行きを共有できるように
AWS IoTボタン
とAWS Lambda
とSlack
を利用して、
ボタンを押したらSlackにメッセージを送るを作りましたので制作過程を共有したいと思います!
最後にGitHubで別のメンバーがソースコードを公開したのでそちらもご覧くださいね。
- AWS IoTボタンのセットアップ
- Slackの新しくなったWebHookURLの準備
- Lambdaを作成する
- Lambdaとアプリを紐づける
- 当日の理想的な押され方
- ソースコードのご紹介
- まとめ
- 宣伝
AWS IoTボタンのセットアップ
ボタンの購入
早速ですが皆さんAWS IoTボタンはお持ちでしょうか? Amazon Dash Buttonは販売を終了いたしましたが、こちらのプログラミングできるIoTボタンは販売を継続しております。 買ってない人は試せませんので是非購入してください!1日で届きます!
AWS IoT ボタン (プログラミング可能な Dash Button) | AWS
AWS IoT 1-Clickアプリをインストール
さて次はアプリをインストールしてください。
iPhoneユーザーはこちら
Androidユーザーはこちら play.google.com
AWSアカウントの取得
この記事を読んでいる皆様はAWSのアカウントをお持ちかと思いますが、
このアプリはAWSのアカウントでログインする必要があります。
※これから先のスクリーンショットはiPhoneのものになります。Androidユーザーの方、もし画面に差異があったら申し訳ありません。脳内で補完をお願いします。
ボタンをWi-Fiに接続する
「Wi-Fiを設定」をタップするとカメラでスキャンが開始されます。 IoTボタンの箱についているバーコードを読み込んでください!
デバイスと接続
スクリーンショットの通りですが、ボタンを6秒間長押しするとペアリングが完了します。
Slackの新しくなったWebHookURLの準備
Slackにメッセージを送るにはWebHookURLが必要です。 Slackにアカウントがあり、ログインしている状態で話を進めます。
以前の方法
以前はこちらのURLからWebHookURLを発行してメッセージを送る方法でした。 https://slack.com/services/new/incoming-webhook 今でもこの方法で作成はできるのですが、 新しくなったWebHookURLがあるのでそちらを利用していきましょう。
最新の方法
Slackのルーム画面から遷移していく方法もあるのですが、長くなってしまうのでURLを貼り付けます。
画面に表示されているStartBuildingをクリックしてアプリを作成します。
アプリの名前と使用するワークスペースがプルダウンで表示されますので選択してください。
作成が完了すると下記のような画面になります。
Incoming WebHooksを有効にしてください。
問題なく進むとAdd New Webhook to Workspace
が表示されています。
投稿先(チャンネル)を選択するプルダウンが表示されるようになっていますので、
選択後、許可するを押して作成完了です。
画面を戻るとWebhook URLが表示されています。 後ほど使いますので忘れないようにしてください。
Lambdaを作成する
Lambdaを作成する場合、ServerlessFrameworkや AWS SAMなどを利用する方法がありますが、 今回は構成がシンプルなためAWSコンソール上で直接Lambdaプログラムを書いてしまっていいでしょう。
関数の作成
まずは管理画面でLambdaを開いて関数の作成
を行います。
関数名は適当につけてもらって構いません。
その後、管理画面上にエディター画面があるので、最後に紹介しているGitHubのコードのindex.js
よりコードを丸ごとコピーして貼り付けてください。
外部モジュールは使いませんでしたのでコピペでいけるようにしております!
環境変数の設定
SlackのWebHookURLとメッセージを登録します。 今回は環境変数に登録すると動くようになっていますのでキャプチャーを参考に、
- TEXT
- WEB_HOOK_URL
を入力してください。 TEXTの情報はそのままSlackに通知されますので、テンションが上がる言葉がいいでしょう!
この段階でちゃんと設定できていると、管理画面上のテスト
ボタンを押すとSlackに通知が飛ぶようになっていると思います!
Lambdaとアプリを紐づける
最後に作成したLambdaとアプリで登録してボタンの通知先として登録する必要があります。 再びですがアプリを開いてプロジェクトの作成を行ってください。
プロジェクト名に好きなものを入れて進めます。
テンプレートの定義という画面で、デバイステンプレートの定義
を選択してください。
保存を押して完了です!うまくいけばこの時点でボタンを押すと通知が届くようになっています! おめでとうございます。
当日の理想的な押され方
ここまでできたら後は押しに押しまくるだけです!!! ※実際にはIoTボタンの制約上、5秒程度待たないと次は押せません!ご注意ください!
ソースコードのご紹介
開発をしてくれたメンバーのリポジトリを共有しておきます! github.com
まとめ
以上です!
宣伝
宣伝ですが4/14え28で出版を行います! 朝から私が机にたって(ボタンを押しながら?)販売している予定ですのでよろしければお立ち寄りください!