前回は、最近 MacroDroid で Google フォームをタップすることができなくなったので、IFTTT のタイムスタンプで代用できないか、しくみを考えたところまで書きました。

『体調管理』という Google フォームの中でも、今まで MacroDroid で自動で入力していたのは
- お通じ
- 点鼻薬
- 朝散歩
- 運動開始
の4つです。
『体調管理』の Google フォームからは他の記録も送信しているんですが、この4つ以外は手入力で大丈夫かな、という感じなので。
…まぁ、4つのうち『点鼻薬』は最近ほとんど使わなくなりましたけどね!

以前、IFTTT で家の日用品の在庫管理をしていると書いたんですが、そのときに『送信した文字が文字化けすることがある』と書きました。

今回の4つの文字列、テストで送信したところ、どれも文字化けしなかったので、文字化けに対する処理は不要でした。
具体的な作業なんですが、
- IFTTT で新しいアプレットを作り、新しい Google スプレッドシートを作る
- 今まで使っていた Google フォームを、『1』で作った Google スプレッドシートにリンクさせる(IFTTT と Google フォームの融合)
- 既存の『体調管理』に、『2』で融合させたデータを転記する
という流れです。
まずは、IFTTT で新しいアプレットを作りました。
IF は『Webhooks』の『Receive a web request』にして、『Event Name』は『Taicho』としました(相変わらずネーミングセンス無いです)。
これで Webhook の URL を使えるようになります。
『THEN THAT』は一応2つ。
1つは Google スプレッドシートの『Add row to spreadsheet』。
『Spreadsheet name』は適当に『体調管理記録』、『Formatted row』は
=DATEVALUE(SUBSTITUTE(GOOGLETRANSLATE(LEFT("{{OccurredAt}}",FIND(" at ","{{OccurredAt}}")),"en","ja")," ",""))+TIMEVALUE(RIGHT("{{OccurredAt}}",LEN("{{OccurredAt}}")-FIND(" at ","{{OccurredAt}}")-3)) ||| {{Value1}} |||
です。
『|||』がセルの区切りなので、使用している列は2列です。
1列目の『DATEVALUE』から始まる数式は、以下に書いたものと同様です。
(上と同じリンクの再掲)

普通に IFTTT のタイムスタンプだけだと Google スプレッドシートで日付・時間と認識してくれないので、他にも計算式を書く必要があって、こういう式になりました。
2列目はただ単に『{{Value1}}』とだけして、Webhook の URL を叩いたときに同時に渡した文字列を表示させます。
その後の『Drive folder path』は、空欄だと勝手に Google ドライブに『IFTTT』というフォルダを作ってその中に先ほど決めた『体調管理記録』というファイルを作成する感じです。
勝手に作られるのが嫌であれば、なにかフォルダ名を指定してあげるといいんだと思います。
『THEN THAT』の2つ目は、一応念の為の『Notifications』で、入力した文字列をスマホの通知に表示させようと思いました。
なくても問題ないんですが、なんとなく「動作したよ」の目印的に。
文章は『体調管理『{{MakerWebhooks.event.Value1}}』を記録しました。』です。
この状態で Webhook の URL を叩くと、『IFTTT』の中にある『体調管理記録』というファイルの一番左のシートに『タイムスタンプ』と『(空欄)』が記録されます。
ファイルがなければこの時点で作られるのかな、多分。
で、ファイルがあることを(もしくは作られたことを)確認して、今まで使用していた体調管理用の Google フォームをこっちのファイルにリンクするように変更しました。
該当の Google フォームを開いて、上部の『回答』というタブ(?)をクリックし、『 ⋮ 』メニューから『回答の送信先を選択』をクリックします。
その後のダイアログで先ほど作成した『体調管理記録』のファイルを選択すると、『体調管理記録』ファイルに新しいシートが生まれます。
Google フォームとリンクしているという印がタブに付いているシートです。
で、このシートをこのファイルの一番左に移します。
IFTTT では、一番左のシートの一番下部に行を足す、という動作をするので、この Google フォームとリンクしているタブに記録がどんどん足されていくことになります。
これで、IFTTT と Google フォームが完全に融合できました。
あとは、今まで使っていた体調管理の結果を表示していたファイルを開き、今までそのデータが溜まっていたシートの中身を先程のファイルに移植しておきます。
そうしたらデータを削除してきれいにし、『IMPORTRANGE 関数』でこのファイルにデータを表示するようにすれば OK です。
これで、IFTTT と Google フォームの融合したデータをこのファイルに表示することができました。
この先は、煮るなり焼くなり好きなようにすればいい、というわけです。
次回は、これを MacroDroid を使って NFC にタッチで起動させる方法を書こうと思います。
まだ続いちゃいます、すみません。
コメント