アマゾンダッシュボタンをハックし、パパのLINEに買い物をお願い:パパダッシュボタンの作成(Windows PC)

Amazonダッシュボタンをハックして、LINEにメッセージを飛ばし、買物を依頼するシステムの作り方を紹介します。

今回作成するのは、Amazonダッシュボタンを押したときに、アマゾンに注文するのではなく、パパのLINEにメッセージが飛ぶシステムです。

パパに、仕事帰りに買物をして帰ってきてもらいます。

名づけて「パパダッシュボタン」です。

まずはじめに、どのような形で動くのか2分弱の動画で紹介します。

パパダッシュボタンの構成

パパダッシュボタンの構成は次の通りです。

①Amazonダッシュボタンを押します

②ダッシュボタンのARPを、ダッシュボタンと同じLAN内にあるPCで受け取ります

なおPCのOSは、MacかUbuntu(Linux)にしておきます

dasherと呼ばれるプログラムを一部改変して、PC上で実行しておきます

④dasherがARPを受け取ると、IFTTTのトリガーアドレスにPOSTします

なおIFTTTではWebhooksとLINEを連携させておき、あらかじめ決めたメッセージをLINEにとばします

以上の流れで、事前に設定した好きなメッセージを、AmazonダッシュボタンからLINEに送ることができます。

パパダッシュボタンの作成方法

1.Amazonダッシュボタンの設定

AmazonダッシュボタンはWifiの設定まで行い、商品選択画面で右上の×を押して、途中で設定を止めておきます。

下の画面です。

これを忘れると、Amazonに注文がいくので注意してください。

ダッシュボタンの設定方法の詳細はこちらをご覧ください。

アマゾンダッシュボタンの使い方と設定方法、必要な環境|IoT機器入門
アマゾンダッシュボタンを使用した体験記を紹介します。また、使用するための環境、設定方法、気になる疑問点(子供...

2.AmazonダッシュボタンのMACアドレスを調べる

AmazonダッシュボタンのMACアドレスをWiresharkを使用して調べます。

2.1 Wiresharkをダウンロードします。

Wireshark

http://forest.watch.impress.co.jp/library/software/wireshark/

2.2 Wiresharkを起動し、使用しているネットワークを選択します

2.3 表示フィルタにarpと入力します

2.4 Amazonダッシュボタンを押して、AmazonTeで始まるパケットを探し、ダブルクリックして、Macアドレスを調べます。

以下の例の場合は、(68:37:e9:71:50:e4)がMACアドレスです。

※後ほど使うdasherにはfindbuttonというプログラムもあるのですが、製造元がunknownとなりAmazonと表示されないため、うまくいきませんでした。

3.OSがUbuntuのPCを用意する

後ほど使うdasherというプログラムがWindowsでは動作しないので、MacかUbuntuのOSが入ったPCを用意します。

Windowsのパソコンをお持ちの場合は、仮想環境を用意して、その上でUbuntuを動作させます。

Vagrantを使用してUbuntuの仮想環境を用意する方法はこちらをご覧ください。

【2017年】Vagrantを使用してWindowsでUbuntuの仮想環境を作成する方法
2017年最新の情報です。Vagrantを使用して、WindowsでUbuntuの仮想環境を構築する方法を紹介します。 ...

別にVagrantを使用しなくても、VirtualBoxとUbuntuを入れるだけでも大丈夫です。

OSを用意したら、次にVirtualBoxのネットワーク設定を変更します。

そのままではNATになっているので、ブリッジに変更します。

VirtualBoxを開き、[設定]→[ネットワーク]から「割り当て」を「ブリッジアダプター」にし、使用しているネットワークを選びます。

※NATのままだとホストコンピュータがルーターの役割になるので、AmazonダッシュボタンとUbuntuが同じLAN内に含まれず、ARPが取れません。

ネットワーク設定が終わったら、VirtualBoxからUbuntuを起動します。

4.dasherプログラムをダウンロードする

Ubuntu上でdasherプログラムを用意します。

dasherのreadmeに従い用意します。

4.1 ターミナルから、作業フォルダを作成します。

4.2 dasherに必要なパッケージとファイルをダウンロードしてきます。

これで環境はそろいました。

nodejsやnodeのあたりは、もしかしたら環境によってうまくいかない可能性があるので適宜修正してください。

5.dasherプログラムの変更

dasherのプログラムを変更します。

5.1 dasherフォルダのconfigフォルダ内にあるconfig.example.jsonをコピーして、config.jsonを作成し、ファイル内容を以下のように変更します。

addressには、お手元のAmazonダッシュボタンのMACアドレスを書きます。

urlはのちほど、IFTTTを設定してから書きます。

また、daserフォルダ内のlibフォルダにあるdasher.jsの次の行

の上に

と書いておきます。

6.IFTTTの設定

次にIFTTTを設定します。

自分でサーバーを用意してdasherからのPOSTとLINEをつなげても良いのですが、それだけならIFTTTを使用するほうが楽です。

IFTTTとは、If This Then Thatの略称です。

「Aというアプリでなんかお知らせがあったら、Bというアプリ動かしますよ~」

というのが可能になるツールです。

例えば、twitterの内容をLINEに飛ばすとか、いろいろアプリ間の連携が出来ます。

IFTTT

6.1 IFTTTにSign upして、アカウントを作成します(無料です)

6.2 上側のメニューからMy Appletsを選択し、右にあるNew Appletを選択します。

+thisをクリックします

検索画面でwebhooksと入力し、下側のwebhooksアプリをクリックします。

※これまでMakerというアプリがあったのですが、webhooksに名前が変わったようです。

Receive a web requestをクリックします。

Event NameはpapaDashと入力します。

※本当はアルファベットなら何でも良いですが、名前はどこかにコピーしておきます。

そしてCreate triggerをクリックします。

次に+thatをクリックします。

検索画面でLINEと入力し、下側のLINEアプリをクリックします。

Send messageをクリックします。

設定画面で、Recipientは「1:1でLINE Notifyから通知を受ける」にします。

Messageに表示させたい内容を入力します。

Photo URLは何も書かなくて大丈夫です。

Create acitonをクリックします。

途中でLINE Notifyの認証画面が出てくる場合は、そのまま指示にしたがい認証を進めてください。

LINE NotifyはLINEと他のWebサービスをつなげるLINEのAPIです。

最後にFinishをクリックして終了です。

つぎにwebhooksのURLを調べます。

以下のページへ行きます。

https://ifttt.com/maker_webhooks

そして右上のSettingsを押します。

Account InfoにあるURL:の、use/以下の部分を後ほど使います。

例)https://maker.ifttt.com/use/hogehogehogehoge

use/以下の部分を使用するので、コピーしておいてください。

以上で、IFTTTの設定は終了です。

7.dasherのconfig.jsonファイルにURLを記入

5.で未記入だったconfig.jsonファイルのURLを入力します。

URLは次の通りです。

以上でシステムの作成が完了となります。

8.パパダッシュを起動・実行する

Ubuntuのterminalから、dasherフォルダに移動し、次のコマンドを入力します。

すると、libフォルダのdasher.jsが起動します。

以下のようなメッセージがterminalに表示されます。

この状態のまま変化はないのですが、Amazonダッシュボタンを押すとterminalに以下のようにメッセージが表示されます。

同時にLINEに、LINE Notifyからメッセージが届きます。

パパダッシュプログラムを止めるときはterminalでCTRL+Cを押します。

以上でWindowsPCでアマゾンダッシュボタンを利用して、パパのLINEに買物をお願いするパパダッシュボタンが完成しました。

まとめ

以上、パパダッシュボタンの作成方法でした。

実際に運用するにはラズパイでプログラムを実行しないとPCリソースがもったいないですが、ちょっと楽しむには十分です。

作ってて不明だった点について、アドバイスいただいたH氏に感謝です。

途中で「これは結局、俺が買いに行くのか・・・」と気づき、

「パパダッシュボタンじゃなくて、ただの俺ダッシュボタンやな」

と思いながらシステムが完成しました。

IoT時代を感じられるシステムです。

中学生以上であれば、夏休みの自由研究にも良いかもしれません。

以上、アマゾンダッシュボタンでパパのLINEに買い物をお願いするパパダッシュボタンの作成方法でした。

ご一読いただき、ありがとうございます。