##スプレッドシートの更新をLINEに通知
皆様、こんにちは。元COBOL☆戦士のhousakoです。
今回は、前回試作したIFTTT(イフト)を使って出先でもGoogleスプレッドシートの更新をリアルタイムタイムリーにLINEの通知で知る仕組みを改良した報告です。
※結果から申し上げますと、当初の意図通りにならず、一長一短という結果になりました。前回の投稿内容で作成されたものを本手順で改造される場合は、一度お読みいただいてから実施頂くことをお勧めします。
前作の長所:通知画面に登録内容がテキストで表示される
前作の短所:入力漏れがあっても通知される
今作の長所:完全に入力されたときだけ通知される
今作の短所:通知画面に登録内容がテキストで表示されない
##前回の試作品で見つかった課題
Googleスプレッドシートに入力したら、1分もかからないうちにLINEに通知されたものの、必要項目を全て入力する前に通知が飛んでしまい、LINE画面には途中までの内容しか届きませんでした。(図の赤枠部分)
##解決策
- Googleスプレッドシートに計算式を追加して、5項目全てを入力したら「特定セルの値を変化」させる
- IFTTTのIf Thisを、Googleスプレッドシートの「行追加」から、「特定セルの値の変化」に変更
##実装
###①Googleスプレッドシートの変更
まず、B列に、C列からG列の「値ありセル数」を計算する式を追加しました。
(3行目を例とした計算式:セルB3)=counta(C3:G3)
次に、A列に、B列の値により表示文字を変化させる計算式を追加しました。
(3行目を例とした計算式:セルA3)=if(B3=5,"○","")
それから、セルA1に、A列の"○"をカウントする計算式を追加しました。
(計算式:セルA1)=countif(A3:A102,"○")
###②IFTTTのIf Thisを変更
前作では「New row added to spreadsheet」を選択して、指定したGoogleスプレッドシートに行追加されたことをトリガとしましたが、改良版では「Cell updated in spreadsheet」を選択して、特定のセルの値が更新されたことをトリガとします。
皆様お気づきの通り、先に変更したGoogleスプレッドシートのセルA1の値の変化をトリガにしようとしています。
上から3つ目の枠内に、GoogleスプレッドシートのURLをコピペし、4つ目の枠内に対象セル(A1)を登録します。
変更点は以上なので、Update triggerをクリックして完了かと思いきや・・・。
エラーが表示されました。プロパティが設定されていないのでアプレットを作成できない???
###③IFTTTのThen Thatを設定しなおしてみる
一旦、Then Thatの設定を削除して、もう一度LINEを指定しなおしてみました。すると、前作では表示できていたColumnA,ColumnB,ColumnC・・・といったセルの値が表示されない初期表示になっています。(Message欄)
「Add ingredient」をクリックしてみると、ここに表示できる値が一覧表示されるのですが、前作で選択できたColumnA等のセルの値が表示されておらず選択できません。
ここまできてようやくわかりました。前作で指定した「行追加」なら、追加した行の値を取ってこれるが、今回は「特定セルの値」なので、追加された行の情報が無くセルの値は取ってこれない、ということですね。
メッセージに少し手を加え、ひとまず改良版?の完成となりました。
スマホ側の通知画面は右側のようになりました。
##総括
スマホの通知画面から得られる情報量は、前作のほうが優れていたことになり、改良と銘打ちながら逆に改悪になってしまいました。。。
しかしながら、今回の構成なら「通知が来た時には間違いなく必要項目が入力されている」というメリットがあります。(前作では、途中まで入力して放置した状態でも通知されてしまうので、管理者がGoogleスプレッドシートを開いたときに情報が不足している場合がある。)
このあたりを踏まえ、「お好みで」使い分けていただければと思います。
最後まで読んでいただき、ありがとうございました。引き続き、勉強を重ねていきます。
【追記】2022/02/06 ここから
部内でテスト運用させてもらうべく、レビューしてもらいました。
結果は、またしても満足いくものではありませんでしたが、皆様の参考になる部分もあろうかと思い、記事にしました。
【追記】2022/02/06 ここまで