[GAS]音声入力で雑に食費を計算したい。


やったこと

やったことはiPhoneからGoogle Assistant+IFTTT+GAS+GoogleSphreadSheetを用いて、
今日の昼飯、夕飯で使ったお金を音声で入力し、スプレッドシートに記録するだけ。
もし入力するのに失敗してもその日のうちだったら上書き出来ます。

ソースコード

これがコードワニ🐊

GASのソース.
var sphreadSheetId = "スプレッドシートのID";
var sheetName ="シート名";

function doPost(e) {

  // スプレッドシートファイルを開く
  var sphreadSheet = SpreadsheetApp.openById(sphreadSheetId);

  // シートを取得する
  var sheet = sphreadSheet.getSheetByName(sheetName);

  // 今日の日にちを取得する
  var dateData = new Date();
  var dateCompSourceString = Utilities.formatDate(dateData,"JST","yyyy/MM/dd");

  // 検索範囲を設定する(データの入力された最終行を取得したいものである・・・)
  var searchRange = 100;

 // 検索範囲文繰り返す  
  for(var i = 2; i < searchRange; i++)
  {
    // セルの日付をYYYY/MM/DDの文字列で取得する
    var dateCompDestString = Utilities.formatDate(sheet.getRange(i,1).getValue(),"JST","yyyy/MM/dd");

    // 日付を比較する
    if(dateCompSourceString == dateCompDestString)
    {
      // 日付が合っていれば、現在のセルの右隣の昼飯列に数値を入れる
      sheet.getRange(i,2).setValue(e.postData.getDataAsString());
    }
  }

}

スプレッドシートはこんなやつ

IFTTTの設定はこんなやつ

IFTTT.
+this:Google Assistant(Say a Phrase with a number)
What do you want to say?:昼飯 #
Language:Japanese

+that:webhooks(Make a web request)
URL:GASのURL
Method:POST
Content Type (optional):text/plain
Body (optional):{{NumberField}}

所感

・Google Assistantの設定なのか入力時に頭に「OK Google」が必要。なので、「OK Google 昼飯 500」のように音声入力するワニ🐊
・日にちの比較に手間取りましたワニ。このあたりの記事を参考にさせてもらいましたワニ🐊
https://jjnurburg.com/newdate/
https://macprimary.white-doll.net/?p=289
・夜飯は昼飯の右隣ワニ。GASファイルは分けましたワニ。Webhookの設定で分岐できそうな気がするワニ🐊