ゼロからの技術ブログ

初学者がゼロの状態から理解するまでの軌跡を書いていくブログ

AmazonダッシュボタンでLINEにメッセージを送る

アマゾンダッシュボタンが発売されてはや半年。
もはや時代遅れ感が否めないけど、楽しかったからまとめておくYO!!



大体1時間もしないで出来たし、ほとんどプログラミングの知識もいらないので子供にもできるカモネ。

ほとんど(90%)先人の知恵をお借りして作りました。

事前準備
AmazonDashButton
node.jsが動く何か
node.js, npm をインストール
IFTTTのアカウント

Amazonダッシュボタンの設定

基本的に設定は以下の通り。
しかし最後の商品選択の画面は✖︎で閉じましょう。
商品を選択してしまうと押せば押すほど商品が届く羽目になってしまうのでご注意を。
qiita.com


IFTTTのアカウントを取得する

IFTTTって何?という方にざっくり説明するとアプリ同士の連携をしてくれるWebサービス
ifttt.com

if this then thatの略でthen→thatの流れでアプリのアクションを引き起こす的な感じかな。
やってないけどTwitterでツイートした時に同じメッセージをLINEにも送信するとかも出来そうな感じのサービス。

今回はMakerというアプリを使ってLINEにメッセージを送信します。
ログインをしてMy Aplletsをクリックして新しいAppletsを作成していきます。
f:id:morototo:20170520222107p:plain



New Appletをクリックして
f:id:morototo:20170520222338p:plain



Thisをクリックします。
f:id:morototo:20170520222438p:plain



Makerを検索してMaker Webhooks
f:id:morototo:20170520222517p:plain



Receive a web requestを作成していきます。
f:id:morototo:20170520222636p:plain



イベント名は適当で大丈夫です。
f:id:morototo:20170520222725p:plain



今度はthatの方をLINEにして、設定をしてきます。
f:id:morototo:20170520222757p:plain



LINEを検索してLINEの作成へ、あとはMakerとほとんど同じです。
f:id:morototo:20170520222835p:plain



LINEの設定はvalueの部分にnode.jsで指定された値が入ってきます。
f:id:morototo:20170520223100p:plain


これでIFTTTの設定は終わり!簡単!

dasherのインストー

dasherが入っていない方は下記を参照しながらインストールをしましょう。
github.com

多分下のコマンドのままやればインストール出来るはず。

$ git clone https://github.com/maddox/dasher.git
$ cd dasher
$ npm install

AmazonダッシュボタンのIPを調べる

インストール出来たらAmazonダッシュボタンのIPを調べます。
調べるコマンドは以下。
コマンドを実行してからAmazonダッシュボタンを押してみたら以下のような情報が出るはず。
xx:xx:xx:xx:xxの部分がIPになります。

$ ./script/find_button
Password:
Watching for arp & udp requests on your local network, please try to press your dash now
Dash buttons should appear as manufactured by 'Amazon Technologies Inc.'
Possible dash hardware address detected: xx:xx:xx:xx:xx Manufacturer: unknown Protocol: udp

MakerのUserIdを調べる

Makerは先ほどのIFTTTから検索をし、Settingにuseridが記載されています。
ifttt.com

Account Info
Connected as toto7249 URL https://maker.ifttt.com/use/xxxxxxxxxxxxx ←これがUserId
Status active

dasherのconfig.jsonの作成

config.jsonで実際にLINEに通知するメッセージやらを作成します。
[name]には先ほどIFTTTで作成したイベント名を入れます。
[url]は先ほどのMakerのUserIdとEventNameを入れます。
[address]には先ほど確認したAmazonダッシュボタンのIPを入れましょう。

$ cd config
$ vi config.json
{"buttons":[
  {
    "name": "[EventName]",
    "address": "xx:xx:xx:xx:xx:xx",
    "interface": "en0",
    "timeout": "60000",
    "url": "https://maker.ifttt.com/trigger/[EventName]/with/key/[MakerUserId]",
    "method": "POST",
    "json": true,
    "body": {"value1": "AmazonDash!!!!!", "value2": "いえええええええええええええええい"}
  }
]}


実際に動かしてみる

以上で設定が終わったので実際に動かしてみます。
dasherを動かしてからAmazonダッシュボタンを押してみましょう。

$ sudo npm run start

> dasher@1.4.1 start 
> node app.js

[2017-05-20T13:50:02.419Z] LINEsendMessage added.

なかなか他のアプリとかにも使えそう!