買い物リストの管理を簡単にしたい


きっかけ

簡単に家族でショッピングリストを共有したいなと思った。
どこかに日頃から書き込むようにすればいいのだがパッと記載できるものが定まらずなんとなく Google Home アプリのショッピングリストを使っていたりした。

「OK Gooogle、ショッピングリストに”卵”を追加して」

これで追加出来るわけだが、なんと音声で削除ができない。
削除するには、Google ホームアプリ > メニュー > ショッピングリストと遷移して手動で消すみたいなフローになる。(音声で出来る方法があったら本当にすみません)

音声でリストに追加できるのはとても利便性がよいのだが、やっぱりテキストベースでも簡単に操作できたらいいなあという思いがあったり、実は声でなかなか追加しなかったりする現状もある。

やりたいこと

考えたのが LINE の Messaging API を利用して Bot を作成する方法だった。イメージとしてはこんな感じ。

買いたいものを日頃から思いついた時に各々 Bot に送り、それが共通のリストに追加される。買い物の時にそれを一覧としてざっと表示されれば嬉しい。さらに、削除も簡単にできたら利便性がいい。

やったこと

① LINE Developers に登録でアカウントを作成

LINE Developers

② “お買い物リスト"のチャンネルを作成する。Messaging API を使う。

Messaging API

③ リスト管理用の Google スプレッドシートを用意

④ GAS をサーバとして API を作成。
ここで ③ で用意したスプレッドシートに書き込み・削除ができるように実装している。

⑤ Messaging API の Webhook 設定に GAS で作成した API を指定

ざっくりこんな感じで実現させた。
結局 Google ホームアプリのショッピングリストは使わなかったが、スプレッドシートでやりたいことが実現できた。

完成形

LINE で実際に操作したキャプチャが以下。

LINE のメッセージで文字列が送信されたらそれをトリガーにして、スプレッドシートの A 列へ順に書き込まれるようにしている。

現在は、”一覧”という文字列が送信された場合は A 列を全て返すようにし、”削除”という文字列の場合は A 列を全削除するようにしている。また、コンテンツを取得できたので、文字列以外は登録できないように制御をした。

ちょっと便利になった

作った Bot を友だち登録し、各々好きな時に必要なものを LINE 送信しておけば、共通のリストで管理ができるようになった。
改善はまだまだできそうだが一旦これで運用する。