この記事は「スマートスピーカー Advent Calendar 2017」の22日目の記事になります。
google homeでライフログを取るようにします。
作るものとしてはgoogle homeに「今からhogehoge」というとgoogleのSpread sheetにその発言したhogehogeと時間を記録するようにします。
全てIFTTTで完結するので、ノンプログラミングです。
AIスピーカーはアレクサとgoogle homeどちらもありますが、アレクサよりもgoogle homeの方がIFTTで自由度が高いのでgoogle homeを使います。
詳細は@monoqloさんの以下の記事が分かりやすいです。
https://qiita.com/monoqlo/items/6d1b628291a5e3c26c79
##IFTTTでgoogle assistantから登録する
IFFTTにgoogle homeの登録する方法はgoogle homeで使用しているアカウントでログインするだけです。
IFTTTのトリガーとして使えるのは
Say a simple phrase
フレーズのみ
Say a phrase with a number
数字+フレーズ
Say a phrase with a text ingredient
言葉+フレーズ
Say a phrase with both a number and a text ingredient
数字+言葉+フレーズ
数字は#文言は#で前後にスペースを入れて登録します。
IFTTTのgoogle assistantに登録する際は
「ほげほげ $ をするよ」
だとうまくいかないことが多かったので
「ほげほげ $」
などの最後はキーワードのみにした方が認識がうまくいきました。
ちなみに自分の発言内容に関してはgoogle homeのマイアクティビティから確認ができます。
https://myactivity.google.com/item?restrict=assist&embedded=1&utm_source=opa&utm_medium=er&utm_campaign=&authuser=1
##IFTTTでgoogle sheetに発言した内容と時間を登録する
次に検索からgoogle sheetを検索してspread sheetの登録をします。
spreadsheet nameは作成するスプレッドシートの名前、Formatted rowは追加していく列の内容を決定します。
今回は時間を追加したいのでCreatedAtとTextFieldです。
TextFieldには先ほどgoogle homeに話した内容が入ります。
CreatedAtには日時が追加されるはずですが、現時点では日時がうまく入力されません。
なので spread sheetの「ツール」ー>「スクリプトエディタ」から自分で日時を追加するスクリプトを追加します。
function insertLastUpdated() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); //シート名を記入
var lastRow = sheet.getLastRow(); // 更新された最後の行番号
var triggerCell = sheet.getRange('B' + lastRow).getValue; // トリガーはBなのでBを指定
var updateDateRange = sheet.getRange('A' + lastRow) // 更新した日時を書くセルを指定
// 更新日時が空でトリガーがあるなら今の日時を追加
if(!updateDateRange.getValue() && triggerCell) {
updateDateRange.setValue(new Date());
}
}
スクリプトが追加できたら「実行」「関数を実行」で確認をし、「編集」「現在のプロジェクトのトリガー」から以下のように設定すれば自動で日時が追加されるようになります。
Drive folder pathはフォルダーパスですが、なくても大丈夫です。
これであとはgoogle homeに「今から hogehoge」と言えば自動で日時と時間が追加されます。
これから実際に運用して改良していきたいと思います