買い物リストの管理を簡単にしたい
きっかけ
簡単に家族でショッピングリストを共有したいなと思った。どこかに日頃から書き込むようにすればいいのだがパッと記載できるものが定まらずなんとなくGoogle Homeアプリのショッピングリストを使っていたりした。
「OK Gooogle、ショッピングリストに”卵”を追加して」
これで追加出来るわけだが、なんと音声で削除ができない。削除するには、Googleホームアプリ > メニュー > ショッピングリストと遷移して手動で消すみたいなフローになる。(音声で出来る方法があったら本当にすみません)
音声でリストに追加できるのはとても利便性がよいのだが、やっぱりテキストベースでも簡単に操作できたらいいなあという思いがあったり、実は声でなかなか追加しなかったりする現状もある。
やりたいこと
考えたのがLINEのMessaging APIを利用してBotを作成する方法だった。イメージとしてはこんな感じ。
買いたいものを日頃から思いついた時に各々Botに送り、それが共通のリストに追加される。買い物の時にそれを一覧としてざっと表示されれば嬉しい。さらに、削除も簡単にできたら利便性がいい。
やったこと
①LINE Developersに登録でアカウントを作成
②"お買い物リスト"のチャンネルを作成する。Messaging APIを使う。
③リスト管理用のGoogleスプレッドシートを用意
④GASをサーバとしてAPIを作成。ここで③で用意したスプレッドシートに書き込み・削除ができるように実装している。
⑤LINEのMessaging APIのWebhook設定にGASで作成したAPIを指定
ざっくりこんな感じで実現させた。結局Googleホームアプリのショッピングリストは使わなかったが、スプレッドシートでやりたいことが実現できた。
完成形
LINEで実際に操作したキャプチャが以下。
LINEのメッセージで文字列が送信されたらそれをトリガーにして、スプレッドシートのA列へ順に書き込まれるようにしている。
現在は、”一覧”という文字列が送信された場合はA列を全て返すようにし、”削除”という文字列の場合はA列を全削除するようにしている。また、コンテンツを取得できたので、文字列以外は登録できないように制御をした。
ちょっと便利になった
作ったBotを友だち登録し、各々好きな時に必要なものをLINE送信しておけば、共通のリストで管理ができるようになった。改善はまだまだできそうだが一旦これで運用する。