【GoogleHomeでメモ帳アプリを作る】4. IFTTTを使ってSpreadSheetにメモを入力
概要
前回までで色々と必要な知識を得て、準備が整ったのでこれから実際に必要な機能を作っていく
- Spreadsheetに記録する部分の作成
- Ok Google ~でSpreadSheetにメモを記録する
- これはIFTTTを使うと便利
- ここで記録したSpreadSheetの内容を次回以降のherokuアプリから呼び出す
資料全体の構成はここに記載: GoogleHomeに話しかけてメモを記録したりメモを読み上げてもらう
IFTTTとGoogleSpreadsheet
IFTTT
アプリの作成
https://ifttt.com/discover - New Appletを選択
if thisの部分
あとから編集した画面なので、初期作成時とは背景の色が違うが、記入内容は同じ
then thisの部分
IFTTT注意
CreatedAtが効かないという問題があるらしい
- https://do-gugan.com/~furuta/archives/2017/10/google-home_spreadsheet.html
- https://qiita.com/miso_develop/items/be562d8a823ad2639d94
IFTTTを試す
GoogleSpreadSheet
IFTTTによって作成されたシートを確認
IFTTTをつくったあとは スプレッドシートが以下のように作られる
GASを追加
上のGoogleHomeに喋って作成したテキストの左の2列に日付を自動で挿入されるようにしたい
「ツール」→「スクリプト エディタ」からGAS(Google Apps Script)を作成する
参考 https://so-zou.jp/web-app/tech/programming/javascript/grammar/object/date.htm
一応プログラムで取得しやすいことを考えてUnixTimeも出すようにしておいた
function addDate() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var date = new Date(); var unixTimestamp = Math.round( date.getTime() / 1000 ); sheet.getRange(lastRow, 1).setValue(unixTimestamp); sheet.getRange(lastRow, 2).setValue(date); }
もし1行目に日付と時刻を自動で入れるようにしたければunixTimestampの部分は不要で、以下だけでいい
sheet.getRange(lastRow, 1).setValue(date);
プロジェクト名を決める
時計の形をしたアイコンをクリックして、
プロジェクトのトリガーとして
- 実行:addDate
- イベント:スプレッドシートから 値の変更
【2019/05/13追記】 トリガーの作成方法が変わっていた。以下で上と同じことになる
ためしにデータを追加してみる
「test」「test2」を記入すると、GASによって、隣に勝手に時刻が記載された