匿名LINEチャットルームを作った

2020-04-01

概要


LINE の Bot を公開しました。
いままで身内向けの BOT を作ることはあったけど、初めてオープンなのを作りました。
LINE の BOT を作るには HTTP リクエストを受けるサーバーが必要なんですが、サーバーを立てるのはお金がかかります。そこで今回は無料でそれっぽいことができる GoogleAppsScript を用いてやってみました。
ソースコード https://github.com/pishiko/anonymous-linechatbot



実装したこと

  • 基本機能(発言を他の利用者に拡散)
  • アイコンの実装
  • ミュート機能



解説


まず LINE API で多数にメッセージを配信するには宛先の userId を指定する必要があります。しかし、Bot と友達になっているユーザーのリストは API では手に入らないため、自分で用意する必要があります。なので、友達登録されたときのイベントを使って記録していきます。
次に記録ですが、DB を GAS でお手軽に実装するには GoogleSpreadSheet を用います。視覚的にも分かりやすいし簡単だし、ちょっと遅いけど使えます。
アイコンはキューを GSS で実装して、友達登録時にユーザーリストに ID と一緒にします。友達をやめたときはアイコンキューに戻してやって、ユーザーリストから ID ごと消してやります。
ミュート機能はユーザーがミュートかどうかリストに保存して、LINE API のリッチメニューから操作できるようにします。リッチメニューは LINE @MANAGER からぽちぽちで作れます。リッチメニューのボタンが押されたらキーワードを発言するように設定して、それを GAS でキャッチします。
最後に発言をほかの登録者に拡散するようにします。LINE API のイベントでメッセージ受信をキャッチして、userId からユーザーリストを検索してアイコンを取得、そのあとユーザーリストの発信者以外かつミュートになっていない人に成形したメッセージを配信します。


おわり