まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

Twitterにて@アカウントでポストして、GoogleHomeにしゃべらせる

こちらを参考にSlackでしゃべってもらおうとしたのですがどうも上手くいかなかったので、Twitterに「@アカウント名 しゃべらせたい内容」とツイートすることでしゃべってもらうようにしました。
engineer.muragon.com
残念ながら、ツイートしてすぐにはしゃべってくれないことが多いです。30秒から1分ほど待つ必要があるようです。

ポストする先の「@アカウント名」は使用するアカウントが@アカウント名に承認されていれば、鍵つきアカウントでもOKです。
なのでGoogleHome専用のアカウントを作っておくといいかもしれません。

※仕様上「https://xxxxx.ngrok.io/google-home-notifier」のxxxxがgoogle-home-notifierを立ち上げるたびに異なります。
下記では現状、google-home-notifierを立ち上げるたびにwebhooksの「URL」の項目を書き直す必要があります。
マシンを立ち上げっぱなしにしておくならまだ良いかもですが、書き直さなくて良いよう改良中です。


●準備:リクエスト用のURLを作る
Googlehomeをしゃべらせるために必要なgoogle-home-notifierはngrokのサーバーを立ち上げてしゃべらせているようなので、そのURLをまず知る必要があります。

1.ターミナルを起動して、ユーザ名$ の後に「cd_」と入力する(「_」はスペース)
2.「google-home-notifier」フォルダを見つけ(おそらくHome→「node_modules」フォルダの中にある)、「cd_」の後ろにドラッグする
3.そうすると「google-home-notifier」のパスを自動的に入力してくれるので、そのままエンターキーを押す
4.ユーザ名$ の後に「node example.js」と入力してエンターキーを押す
5.すると下記のように表示されるので、https:以下をコピーしておく(「xxxx」はダミーです)

curl -X POST -d "text=Hello Google Home" https://xxxxx.ngrok.io/google-home-notifier

google-home-notifier.jsに書き加える

1.スマホのGoogleHomeアプリを立ち上げ、右上のアイコンをタップする
2.「デバイス」と出てくるので、「PINXXXX」と書いてあるところの右にある「⋯」をタップする
3.「設定」をタップし、いちばん下に書いてある「IPアドレス」の数字をメモする
4.PCで「google-home-notifier.js」という名前のファイルを探し、エディタで開く
5.おそらく8行目と20行目が「en」または「us」となっているので、ここを「ja」にする
6.下記のように付け加える。「var ip」のところは3.の数値にする

var deviceAddress;
var language;

//追加
var deviceName = 'Google Home';
var ip = '192.168.x.x';
//ここまで

7.6.を保存する


●IFTTTでレシピを作る
レシピはこちらを参考にさせて頂きました。
kotodama.today

1.IFTTTにログインして、右上の自分のアカウント名の横にある三角アイコンから「New Applet」を選択する。
※このとき認証しているTwitterアカウントはしゃべらせたいアカウント(「@アカウント」の「アカウント」。GoogleHome用にアカウントを作っていればそのアカウントのほうがベターか)であること
例:しゃべらせたいアカウント:@hogegooglehome
自分が使っているアカウント:@hoge
の場合、認証するのは@hogegooglehome
2.「+This」をクリックして「Twitter」をクリックする
3.「New mention of you」をクリックする
4.「+That」をクリックして「webhooks」を選択する
5.「Make a web request」をクリックして、下記のようにする
・「URL」に「準備:リクエスト用のURLを作る」5.でコピーしたURLを入力
・「Method」は「POST」を選択
・「Content Type」は「application/x-www-form-urlencoded」を選択
・「Body」は「text=” {{UserName}} さんから {{Text}}”」と入力
※この「UserName」は自分が使用しているアカウント名になる。しゃべらせたいアカウント名ではない
例:しゃべらせたいアカウント:@hogegooglehome
自分が使っているアカウント:@hoge
の場合、「UserName」は@hoge
6.「Create action」をクリックする
7.「@アカウント しゃべらせたいこと」でツイートすると、GoogleHomeがキェェェシャベッタァァァ!