ludwig125のブログ

頑張りすぎずに頑張る父

【GoogleHomeでメモ帳アプリを作る】4. IFTTTを使ってSpreadSheetにメモを入力

概要

前回までで色々と必要な知識を得て、準備が整ったのでこれから実際に必要な機能を作っていく

  • Spreadsheetに記録する部分の作成
  • Ok Google ~でSpreadSheetにメモを記録する
  • これはIFTTTを使うと便利
  • ここで記録したSpreadSheetの内容を次回以降のherokuアプリから呼び出す

資料全体の構成はここに記載: GoogleHomeに話しかけてメモを記録したりメモを読み上げてもらう

IFTTTとGoogleSpreadsheet

IFTTT

アプリの作成

https://ifttt.com/discover - New Appletを選択

ifttt_newapplet

if thisの部分

あとから編集した画面なので、初期作成時とは背景の色が違うが、記入内容は同じ

ifttt_ifthis

then thisの部分

ifttt_then

IFTTT注意

CreatedAtが効かないという問題があるらしい

IFTTTを試す

GoogleSpreadSheet

IFTTTによって作成されたシートを確認

IFTTTをつくったあとは スプレッドシートが以下のように作られる

spreadsheet1

GASを追加

上のGoogleHomeに喋って作成したテキストの左の2列に日付を自動で挿入されるようにしたい

「ツール」→「スクリプト エディタ」からGAS(Google Apps Script)を作成する

参考 https://so-zou.jp/web-app/tech/programming/javascript/grammar/object/date.htm

spreadsheet2

一応プログラムで取得しやすいことを考えて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);

spreadsheet3

プロジェクト名を決める

spreadsheet4

時計の形をしたアイコンをクリックして、 プロジェクトのトリガーとして - 実行:addDate
- イベント:スプレッドシートから 値の変更

spreadsheet5

【2019/05/13追記】 トリガーの作成方法が変わっていた。以下で上と同じことになる f:id:ludwig125:20190513151931p:plain

ためしにデータを追加してみる

spreadsheet6

「test」「test2」を記入すると、GASによって、隣に勝手に時刻が記載された