IFTTTとGASでGoogleHomeがLINEしてくれる機能をつけた
前回は単純にお買い物リストに言った内容を追加してもらうだけだったので、
今回は「溜まったリストをLINEしてもらう機能」を作った。
IFTTTで全部行けるかと思ったけど、IFTTTのLINE機能だと、決まった言葉しか送れないので、スプレッドシートにGAS(Google Apps Script)を付けてそこをWebアプリケーション的に呼び出す感じで実装。
これの続き
1.IFTTTでトリガーを作る
トリガーは今回もGoogle Assistant。↓のように設定。
2.LINEでスプレッドシートの内容をまとめて送る機能をGASで実装
2-1.LINE Notifyのトークンを取得
①LINEの機能を使う為のトークンを取得
②LINE Notify(https://notify-bot.line.me/ja/)にアクセス。
③マイページに行って「アクセストークンの発行」からトークンを発行。
(トークルームが選択できるので、買い物メモを共有する人とトークルームを作っておく。)
2-2.GASの実装
GoogleDriveから「新規」→「その他」→「Google Apps Script」でGASの空プロジェクトを作成
ソースはこんな感じ。GASって初めて触ったけど、とっつきやすい。
gist67c8a40af1a3a3cceb89ce49f653988b
いくつかメモ。
・スプレッドシートとは別のGASファイルから呼ぶ場合は
SpreadsheetApp.openById("キー");
(キーは対象スプレッドシートのURL https://docs.google.com/spreadsheets/d/●●~●●/edit の●●~●●の部分)
スプレッドシートに直接付けたGASを開く場合は
SpreadsheetApp.getActive();
・GETに対するアクションは「function doGet(e)」で定義。
POSTの場合は「function doPost(e)」
そういう決まり。
・ソースができたら「ファイル」→「版を管理」→「新しいバージョンを保存」で保存。
これをしなかったら、呼べなかった。
「スクリプト関数が見つかりません:doGet()」とか言われて怒られた。
2-3.GASをWebアプリケーションとしてあげる
保存したら「公開」→「ウェブ アプリケーションとして導入」。
設定はこんな感じ
プロジェクトバージョンはさっき保存したバージョン。
表示された「現在のウェブアプリケーションのURL」は後で使うのでこぴーしておく。
3.アクション側(that)を作る
IFTTTのLINEアクションだとスプレッドシートと紐づかないので、Webhooksでさっき作ったGASを呼ぶ
これで完了!!
4.動かす
こんな感じで動きました
ふと思い立ってGoogleHomeにお買い物メモ機能を追加した。まとめてLINEもしてくれる。
— ぴよ (@piyopiyorz) 2018年10月30日
IFTTTとGASですぐ作れる!特にIFTTTの楽さには感動した。すごい!https://t.co/7z1rz6JepS
日々開発はコーディング云々より、色んな機能の組み合わせで出来るように簡単になってるな、と感じた。
特にIFTTTとGASには感動した。
GAS使うとこんな簡単にWebアプリケーションの作成と公開が出来ちゃうんだ。IFTTTは言うまでもなし。
残りの機能もさらさらっと作ろう。