流れるまにまに

流れるまにまに

やったこととかのメモ。

IFTTTとGASでGoogleHomeがLINEしてくれる機能をつけた

前回は単純にお買い物リストに言った内容を追加してもらうだけだったので、

今回は「溜まったリストをLINEしてもらう機能」を作った。

 

IFTTTで全部行けるかと思ったけど、IFTTTのLINE機能だと、決まった言葉しか送れないので、スプレッドシートにGAS(Google Apps Script)を付けてそこをWebアプリケーション的に呼び出す感じで実装。

 

 

これの続き

piyomanilife.hatenablog.com

 

 

  

1.IFTTTでトリガーを作る

トリガーは今回もGoogle Assistant。↓のように設定。

f:id:piyomani:20181102090409p:plain

 

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アプリケーションとしてあげる

保存したら「公開」→「ウェブ アプリケーションとして導入」。

設定はこんな感じ

f:id:piyomani:20181102102723p:plain

 

プロジェクトバージョンはさっき保存したバージョン。
表示された「現在のウェブアプリケーションのURL」は後で使うのでこぴーしておく。

 

3.アクション側(that)を作る

IFTTTのLINEアクションだとスプレッドシートと紐づかないので、Webhooksでさっき作ったGASを呼ぶ

f:id:piyomani:20181102103025p:plain

 

これで完了!!

 

4.動かす

こんな感じで動きました

 

 

 

日々開発はコーディング云々より、色んな機能の組み合わせで出来るように簡単になってるな、と感じた。
特にIFTTTとGASには感動した。
GAS使うとこんな簡単にWebアプリケーションの作成と公開が出来ちゃうんだ。IFTTTは言うまでもなし。
残りの機能もさらさらっと作ろう。