かずきち。の日記

サーバサイドエンジニアのつぶやき

Amazon Dash ButtonをWebhookに飛ばす方法

https://www.instagram.com/p/BZak0fgHv8u/
Instagram

AmazonDashボタンはご存知でしょうか?

www.amazon.co.jp

ボタン一つでAmazonで注文できてしまう魔法のボタンです。

ボタンの動作手順
  1. 電源オン
  2. 同時設定のWifiのネットワーク接続
  3. 重複検知のARPプロープ送信
  4. Amazonへの購入処理のHTTPリクエス

という一連の手順をこのDashボタンは行います。

今回はこのAmazonダッシュボタンをIoTボタンとして利用します

まずAmazonDashボタンのセットアップをしてしまうと、Amazonとシンクロしますので
洗剤やお菓子などが届きまくるという事態になります。
IoTボタンとしての利用はセットアップを終えてはいけません。

https://camo.qiitausercontent.com/84a4b5777f5baed7af03d2911fc42d66e8e60409/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f32303433342f31313730353332362d626536612d376261372d316239332d3861653830366363643031612e706e67
引用:https://camo.qiitausercontent.com/84a4b5777f5baed7af03d2911fc42d66e8e60409/68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f32303433342f31313730353332362d626536612d376261372d316239332d3861653830366363643031612e706e67

dasherボタンをフックする

macアドレスからのパケット送信を検知して、HTTPリクエストを投げます。
実態はnode-dash-buttonのラッパーです。

Amazon Dash ButtonMACアドレスを知ろう

Amazon Dash ButtonにももちろんMACアドレスは割り振られています。
dasherのREADMEを読んでください。

{"buttons":[
  {
    "name" : "test 天然水",
    "address": "34:d2:70:b5:cf:ee",
    "url": "https://hooks.slack.com/services/xxxxxxxxxx/yyyyyyyyy/1234567890",
    "method": "POST",
    "json": true,
    "body": {"text":"Hello, World from Amazon Dash Button!!!"}
  }

で起動。

%  npm start

> dasher@1.1.1 start /Users/jun/Projects/github/dasher
> node app.js

[2016-12-05T16:39:33.654Z] test 商品A added.

で終了です。