ludwig125のブログ

頑張りすぎずに頑張る父

GoogleHomeまたはAndroidに話しかけてスプレッドシートにメモを取る

概要

GoogleHomeやAndroidに話しかけるだけでスプレッドシートにメモを取ることができる

ちょっとしたメモを取るのに便利

ludwig125.hatenablog.com

こちらとほぼ同じ方法で作った

手順

これだけ 1.スプレッドシートを用意する 2.スプレッドシートにGoogleAppScriptを追加する 3.IFTTTを登録する

1.スプレッドシートシートを用意する

f:id:ludwig125:20190513153022p:plain

新しいスプレッドシートを作成 → 空白を選ぶ

f:id:ludwig125:20190513153111p:plain

ここでは適当に「test」という名前のスプレッドシートにしたが何でもいい

2.スプレッドシートにGoogleAppScriptを追加する

GoogleAppScriptを作成

f:id:ludwig125:20190513153157p:plain

上のタブの「ツール」→ 「スクリプト エディタ」を選択

適当に「test-gas」というプロジェクト名にするが何でもいい

f:id:ludwig125:20190513153347p:plain

コード.gsに以下を記入する

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(date);
}

「lastRow, 1」にすると縦一列目に入力時刻が記載される

f:id:ludwig125:20190513153517p:plain

トリガーを追加

f:id:ludwig125:20190513153539p:plain

コード.gsの上の部分の時計のアイコンを選択

f:id:ludwig125:20190513153614p:plain

「新しいトリガーを作成します。」をクリック

必要な部分を選択 - 実行する関数を選択: addDate - 実行するデプロイを選択:Head ←これしかなかった - イベントのソースを選択:スプレッドシートから - イベントの種類を選択:変更時 - エラー通知設定:1週間おきに通知を受け取る ← 好みで変えていい

f:id:ludwig125:20190513153933p:plain

記載したら保存

「アカウントの選択」でGmailIDを選択

f:id:ludwig125:20190513154037p:plain

「このアプリは確認されていません」と出るが、無視して詳細を選択して、 「~~(安全ではないページ)に移動」をクリックする

f:id:ludwig125:20190513154142p:plain

「test-gas が Google アカウントへのアクセスをリクエストしています」 の下の「許可」を押す

f:id:ludwig125:20190513154417p:plain

ここまでの動作確認

ここまでやったら最初のtestシートに戻る

f:id:ludwig125:20190513154332p:plain

Bより右の列に適当に入力してEnterキーを押すと以下のようにA列に日付が自動で出力されるはず

f:id:ludwig125:20190513154810p:plain

これだけでもいいが、時刻までシートに表示させたいので、表示形式を変える

f:id:ludwig125:20190513154914p:plain

A列目を全部選択して、「表示形式」→ 「数値」→「日時」を選択

f:id:ludwig125:20190513155100p:plain

またA列目を全部選択して右クリックから「条件付き書式」を選ぶと、以降A列目だけ色がつくので見やすい(やらなくてもいい)

3.IFTTTを登録する

IFTTTのトップページにいって「My Applets」を選択

ifttt.com

f:id:ludwig125:20190513162254p:plain

New Appletを選択

this

f:id:ludwig125:20190513162322p:plain

f:id:ludwig125:20190513162349p:plain

Google Assistantを選択

Say a phrase with a text ingredient を選択

f:id:ludwig125:20190513162542p:plain

「テスト $」や「test $」など発音しやすい(かつGoogleAssistantが他の言葉と区別しやすい)言葉を選択

Create triggerを押す

that

f:id:ludwig125:20190513162723p:plain

Google Sheetsを選択

Add row to spreadsheet を選択して以下のようにする

f:id:ludwig125:20190513162843p:plain

f:id:ludwig125:20190513162912p:plain

もしGoogleAppScriptおよびトリガーを設定せずに、左の列にCreatedAtを選択するとGoogleHome経由で入力すると「May 14, 2019 at 08:48PM」のような形式でスプレッドシートに記載される この機能は昔は機能していなかった気がするので、GoogleAppScriptをわざわざ作ったんだけど。。 ただ、日付の形式は変えられない。 もし形式がこれでよければスプレッドシート側のスクリプトは不要そう f:id:ludwig125:20190515064221p:plain

動作確認

GoogleHomeまたはAndroidで「OK Google テスト 123」

f:id:ludwig125:20190515065204p:plain

なぜかGoogleHome経由からだと時刻が表示されない。 でもセルを見れば時刻がわかるからいいかな。。

GoogleHome経由でスプレッドシートに記入されないとき

Google ドライブ - 1 か所であらゆるファイルを保管 Google Driveを見て、以下のthatで定義したGoogleHomeのフォルダに対象のシートが入っているか確認する

f:id:ludwig125:20190515065311p:plain

別のフォルダの同名のシートに書き込まれていることがあった

f:id:ludwig125:20190515063015p:plain