今回は、LINE公式アカウントを使って、どうやって会員情報を作るか?というテーマです。
試行錯誤で進めていた案件ではお友達を少々管理する程度の情報取得でしたが、
多くのサービスでLINE公式アカウントを使った場合、自前でお友達=サービスの会員として、もっと情報が欲しいでしょう。

LINEのAPIでLINE情報は取得できますが、
これでは、マーケティングにしても、会員管理にしても情報が足りません。
足りない情報は自システムで持つ必要があります。

つまり、LINE公式アカウントを使って会員サービスを作る場合は、LINE公式アカウント上のユーザー情報と自システムの会員情報を結び付けるデータを作成する必要があります。

自システムの会員情報を識別するIDでそのまま使うと、どこかで露出する可能性があります。(システムの作り方によりますが。)
LINE公式アカウント上で取れるユーザーIDは、個々のLINE公式アカウント上で発行されるので、別のLINE公式アカウントでは使用できませんが、
本来、表に出るIDではないので、自システム内のユーザーIDは別に生成し、自システム内でマッピングするのがよいと考えています。
このユーザーIDはプッシュメッセージなどを送信する時にも使えます。

では、LINE公式アカウントのユーザーIDをどのように取得して、自システムの会員情報とマッピングできるのでしょうか?

まず最初に考えられるのは、トークルーム上のイベントをフックして、Webhookイベントオブジェクトから取得するということです。共通項目なので、どのイベントでも取得できます。

会員化というのは、基本1回だけで処理すればいいものです。何度も会員になっているか・いないかをチェックする無駄は省きたいものです。
とすると、

  • トークルーム上のイベントである
  • ユーザーが起こす行動で原則1回になること
  • そして、ユーザーにとって特別なプロセスではなく、LINE公式アカウントを使うために必ず通るプロセス

で、ユーザーIDを取るのが一番です。
会員化するために面倒なプロセスが必要となると、途中で離脱するユーザーも出てくる可能性があります。これは避けたい。

この条件に合致するのは「友達追加」イベントです。
こちら、トークルームに入るためにボタンを押しますが、フックできます。
このイベントのオブジェクトからユーザーIDを取得し、会員情報とマッピングすればいいわけです。

なお、友達をやめる時のイベントもキャッチできますので、”退会”機能も実装できます。

さて、友達追加で会員情報とLINEのIDをマッピングとさらっと言いましたが、
既存のLINE公式アカウントでやりたい場合はどうするのか、という問題が出てきます。
新規サービスなら、思い切って別にしましょう!と提案できますが、既存のLINE@のお友達数が多ければ多いほど、なかなか新しくとは言えませんね。

ちょっと前に関係したLINE関係の案件では、新しいLINE公式アカウントの方向で話を詰めていきましたが、「既存でやるかも?」という話があったので、
回避策は同時に考えました。
そこで考えたのはLIFF上での処理で、という対応策。

私ががっつり触ったのは、V1で、初期化処理のコールバックに渡されるdataにユーザーIDが含まれていたので、こちらを取得して会員化のチェックプロセス+なければ追加を実装しました。
現在はV2ですが、APIリファレンスを見る限り、initでは取れなくても、別のメソッドをコールバックででも実行すれば取れそうです。
難点だなと個人的に思うのは、LIFFの起動の度にチェックすることになるという点。1回チェックしたといった結果をLocalStorage等に入れておくことは将来を考えると現実的ではないので、回避方法は検討中というところです。

LINEのログイン認証を使用してがっつり会員化まで行かないけど、LINEと絡めて会員情報作りたい、
というような場合に実装方法の一つの案として検討してみてください。

LINE公式アカウントとシステムの連携など、お困りの方は、是非、弊社にご相談ください。

ご相談は、こちらから。