ck_fm0211のブログ

書きたいことを書く。

ギガ活プロモコードの操作を楽にするLINE Botを作成した

はじめに

以前、povo2.0のプロモコードをGASで管理するという記事を書いた。 ck-fm0211.hatenablog.com

とりあえずの運用としては成立はしていたが、スプレッドシートからプロモコードをコピーしてpovoアプリに貼り付けるというのがなかなか面倒だった。

  • スマホスプレッドシートに記載された文字列をコピーするというのがまず面倒。
  • 使用済みのチェックをつけるのが面倒。
  • 300MBのものを使おうとして誤って24h無制限のコードを使ってしまう(未遂)

など、地味ではあるがちょっとした課題があった。

これらを解決するため、LINE Botを実装した。
LINE Botを作ってみたかったというのも理由の1つ(それが大半な気もする)。

LINE Bot概要

以下のことを実現したかった。

  • スプレッドシートにあるプロモコード一覧から、利用したい容量を指定するとそれに合致する、最も利用期限が近いプロモコードを1つ取得する。
  • プロモコードを取得したあと、それを使用済みにするかどうかが選択できる。
  • いま所有しているプロモコードの内訳が取得できる。

特に「コードの取得→使用済みにする」がLINE上でタップするだけで完結するというのが重要だった。

実装したもの

YouTubeに使用イメージの動画をupしてみた。これもやってみたかったからやっただけである。


www.youtube.com

実装環境

以前作成したスプレッドシートと連携するので、そのままGoogle Apps Script(GAS)で実装した。
GASでLINE Botをつくれるというのに少し感動した。

実装の流れ

ざっくり以下の流れで実装。

  1. LINE公式アカウントを作成する
  2. LINE Developersで新規プロバイダを作成する
  3. Google Cloud Platform(GCP)アカウントを取得し、プロジェクトを作成する
  4. GASでコードを書く
  5. GASのデプロイURLをLINE側のWebhookURLに設定する

LINE公式アカウントを作成する

LINE Botを作るには公式アカウントを開設する必要がある。
以下のURLからアカウントを作成した。認証済みアカウントにする必要はない。 www.linebiz.com

LINE Developersで新規プロバイダを作成する

Botは基本的にLINEのMessaging APIで操作する。これを利用するためにLINE Developersで新規プロバイダを作成した。 developers.line.biz

Google Cloud Platformアカウントを取得し、プロジェクトを作成する

GASで doPost doGet を実装することになるが、これらのログはGASのコンソール画面から確認できない。
代わりにGCPのCloud Loggingを利用する必要がある。
このあたりの記事を参考に設定した。 www.hidetoshl.com ryjkmr.com

GASでコードを書く

書くだけ。

実装ポイント1: 入力の簡易化

今回はユーザー(自分と妻)からの入力を簡易にしたかったので、LINE Messaging APIのクイックリプライを多用した。 developers.line.biz

クイックリプライ
クイックリプライ

呼び出しだけ適当なメッセージを送信し、あとはクイックリプライだけでBotとやりとりをするような仕組みにした。

実装ポイント2: シート内検索

スプレッドシートからプロモコードを取得するのには QUERY 関数を利用した。
SQLに慣れている自分としては、スプレッドシート内の検索は QUERY 関数を使うのが一番わかりやすかった。
また、機能として所有しているプロモコード内訳を出すのにも GROUP BY が使えるので便利だった。

実装ポイント3: ユーザーを絞り込み

LINE Botは非公開ということが(たぶん)できない。そのため、今回作ったBotは世界中の誰でも利用しようと思えばできてしまう。
それでは困るので、利用できるユーザーを自分と妻だけになるようにした。
Botがメッセージを受け取ると userId という値が取得できるので、その値が想定された値かどうかを確認するようにした。
実装する際にはごにょごにょして値を確認したが、以下のやり方がスマートかもしれない。 neos21.net

GASのデプロイURLをLINE側のWebhookURLに設定する

GASのコードをデプロイ(=公開?)し、発行されたURLをLINE側のWebhook URLとして設定した。
LINE Developersのプロバイダ設定から行った。

コード

github.com

おわりに

LINE Botの作成は思っていた以上に簡単だった。無料でここまでできるっていうのがすごい。Google様々だなと感じた。
Slack Botとかも似たような感じで作れそうなので、業務で使えるようなものを作ったりするのも楽しそうだなと思った。
なんにせよ、こういう便利Botってアイディア先行だと思うので、こういうのあったら便利だなあみたいなものを見つけていきたい。

povoのプロモコード管理についてはこれで一段落したかなという感触。
たまにキャンペーンで得られる特殊なプロモコードがあるので、そういうのをLINEから登録できたらいいのかなと思ったりもする。

追伸

povoのプロモコードのおかげで、回線を切り替えてから1ヶ月の携帯料金がゼロ円で運用できている。すごい。
「ギガ活のために買い物する」というのは本末転倒だが、普段の生活でギガ活になり得るものがある人は是非povoの利用をおすすめする。
具体的には「ローソンが家の近くにある喫煙者」がベストマッチだと思う。ローソンでau PAYを使ってタバコを買うだけで300MBのプロモコードが貰えるので。