JavaScript
ifttt
PhantomJS
casperJs
GoogleHome

Google Homeとヨドバシ.comを連携させてみた

20171105134856.png

流行りに乗ってGoogle Homeを買いました。

なんですかね。この近未来感

年代なのか、やはり声で操作できるってのは無条件ですごいですよね。

と言いながらまだ何ができるかよくわかってなく、もっぱら朝のラジオとアラームに終始しています

ただそれだけではさすがに勿体無いので、日頃お世話になってる

ヨドバシ.comと連携させてGoogleHomeから買い物できるようにした

Yodobashi Go Homeを作ってみました

GitHub

GitHub

構成

  • Google Home
  • さくらVPS
  • IFTTT
  • NodeJS
  • CasperJS(PhantomeJS)
  • SQLite

処理の流れ

20171105134537.png

Google Home → IFTTT → NodeJS → CasperJs → ヨドバシ.com

GoogleHomeに「おk Google 烏龍茶買って」と話しかければ
連携しているIFTTTのレシピが発火し
さくらVPSのNodeJSにPOSTリクエストを送ります
その際にAPI KEYと商品名も一緒に送ります

NodeJSがPOSTリクエストを受け取れば、CasperJSに商品詳細のURLを送り

CasperJSがyodobashi.comにアクセスし、ログインし対象の商品を買います

ハイテクになりきれてない1/3ぐらいのアナログ感が気に入ってます

CasperJS使わないと買い物できないヨドバシに踊らされてる感が好きです

IFTTTの設定

まずはGoogle HomeとNodeJSの架け橋のIFTTTの設定から

IFTTTさえ設定すればGoogle Home側では特に設定する必要はありません。

便利ですIFTTT

Appletの作成

Google Homeに紐づいてるGoogleアカウントでログインし
New AppletでGoogle Assistantを選択
Triggerは「 Say a simple phase」にする

20171102173719.png

トリガーの設定

Complete trigger fields画面で 以下の通り設定する

■What do you want to say?

烏龍茶買って

■What do you want the Assistant to say in response?

わかりました

■Language

japanese

これでまずはIFTTTのthisの部分はできました。

次はthatの部分です

20171102195305.png

アクションの設定

Google Homeに話しかける部分までは終わったので、それに対するアクションを設定します。

Node JSにPOSTを送る部分ですね

Choose action serviceでWebhooksを選択し
Make a web requestでは以下のように設定します

■URL
NodeJSのURL

■Method
POST

■Content Type (optional)
text/plain

■Body (optional)
key=uroncha&apiKey={api key}

これでsaveすればIFTTTの設定は完了です

サーバ側の設定はまた次回