GoogleHomeまたはAndroidに話しかけてスプレッドシートにメモを取る
概要
GoogleHomeやAndroidに話しかけるだけでスプレッドシートにメモを取ることができる
ちょっとしたメモを取るのに便利
こちらとほぼ同じ方法で作った
手順
これだけ 1.スプレッドシートを用意する 2.スプレッドシートにGoogleAppScriptを追加する 3.IFTTTを登録する
1.スプレッドシートシートを用意する
新しいスプレッドシートを作成 → 空白を選ぶ
ここでは適当に「test」という名前のスプレッドシートにしたが何でもいい
2.スプレッドシートにGoogleAppScriptを追加する
GoogleAppScriptを作成
上のタブの「ツール」→ 「スクリプト エディタ」を選択
適当に「test-gas」というプロジェクト名にするが何でもいい
コード.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」にすると縦一列目に入力時刻が記載される
トリガーを追加
コード.gsの上の部分の時計のアイコンを選択
「新しいトリガーを作成します。」をクリック
必要な部分を選択 - 実行する関数を選択: addDate - 実行するデプロイを選択:Head ←これしかなかった - イベントのソースを選択:スプレッドシートから - イベントの種類を選択:変更時 - エラー通知設定:1週間おきに通知を受け取る ← 好みで変えていい
記載したら保存
「アカウントの選択」でGmailIDを選択
「このアプリは確認されていません」と出るが、無視して詳細を選択して、 「~~(安全ではないページ)に移動」をクリックする
「test-gas が Google アカウントへのアクセスをリクエストしています」 の下の「許可」を押す
ここまでの動作確認
ここまでやったら最初のtestシートに戻る
Bより右の列に適当に入力してEnterキーを押すと以下のようにA列に日付が自動で出力されるはず
これだけでもいいが、時刻までシートに表示させたいので、表示形式を変える
A列目を全部選択して、「表示形式」→ 「数値」→「日時」を選択
またA列目を全部選択して右クリックから「条件付き書式」を選ぶと、以降A列目だけ色がつくので見やすい(やらなくてもいい)
3.IFTTTを登録する
IFTTTのトップページにいって「My Applets」を選択
New Appletを選択
this
Google Assistantを選択
Say a phrase with a text ingredient を選択
「テスト $」や「test $」など発音しやすい(かつGoogleAssistantが他の言葉と区別しやすい)言葉を選択
Create triggerを押す
that
Google Sheetsを選択
Add row to spreadsheet を選択して以下のようにする
もしGoogleAppScriptおよびトリガーを設定せずに、左の列にCreatedAtを選択するとGoogleHome経由で入力すると「May 14, 2019 at 08:48PM」のような形式でスプレッドシートに記載される この機能は昔は機能していなかった気がするので、GoogleAppScriptをわざわざ作ったんだけど。。 ただ、日付の形式は変えられない。 もし形式がこれでよければスプレッドシート側のスクリプトは不要そう
動作確認
GoogleHomeまたはAndroidで「OK Google テスト 123」
なぜかGoogleHome経由からだと時刻が表示されない。 でもセルを見れば時刻がわかるからいいかな。。
GoogleHome経由でスプレッドシートに記入されないとき
Google ドライブ - 1 か所であらゆるファイルを保管 Google Driveを見て、以下のthatで定義したGoogleHomeのフォルダに対象のシートが入っているか確認する
別のフォルダの同名のシートに書き込まれていることがあった