【1日1zenn - day9】LINE友達追加周りを調べてみる
バックエンドやりそうな雰囲気になってきたので、まずシーケンス図からちょっと始めようかなと思ってたら結局LINE API周りの仕様を調べる日になりました。
練習の題材として興味が湧くやつパッと浮かばなかったのですが、最近資金調達で話題にDiniiを思い出しました。
モバイルオーダーで、QRコードを読み込むだけ(?)でLINEにログインできて、確かDiniiはそのLINEの友達数をユーザー数としてピッチ資料的なのに載せていた記憶があります。
あれすごいですよね。
以前自分もマーケで、LINE友達追加数を中間KPIにオウンドメディアの戦略設計みたいなのをやったことがあるのですが、友達追加しようと思わせるのが難しかったです。そこを、「注文しよう」と思っている人が「友達追加した」と感じないままCVしてるみたいな状態を作れてるのはめちゃくちゃ羨ましいですね。
あれとかってどういう処理なんだろう。
なんとなくLINEのそういうAPIを叩いてる気はしつつ、一旦題材にしてみます。
なんとなく処理を察する
ユーザーストーリー的に言うと以下かなと記憶を掘り起こします
- 来店客:QRコードを読み取る
- LINE:同意画面を表示する
- もしかしたらリダイレクト挟んでたかも?
- LINEをDLしてるかの判定とかあるかも?
- 来店客:「許可する」押下
- LINE:友達追加
- Dinii:注文画面を表示
LINEの仕様を調べる
調べてくうちに、シーケンス図じゃなくてLINE仕様勉強メインでいいかもと思えてきた。
LINEログインを始めよう
思ったことざっくりメモしていく
- プロバイダーという概念があり、プロバイダーごとにLINEユーザーは異なるIDを持つ
- 店舗ごとじゃなくてDiniiがプロバイダーだと、過去の注文履歴とか連携できそう
- LINEログインのチャネル
- アプリとLINEプラットフォームを接続するための通信路
- アプリごとに、チャネルを作成する必要がある
- LINEログインのチャネルは、LINE Developersコンソールで作成
- 一旦ビジネスアカウント作ってみよう。
- ウェブアプリかネイティブアプリか、とかもこのチャネルで選択する
- [LINEログイン設定]タブの[コールバックURL]でサービスのURLを入れればログイン後にサービスページに飛ぶようになりそう
なんかバックエンドの処理というより、LINEでいい感じに提供してくれてそうですね。
店舗ごとの出し分けはどうやってるんだろう。
続きを読んでいきます。
ウェブアプリにLINEログインを組み込む
- LINEログインボタンを表示せず、認可URLに直接リンクすることもできるらしい
- ex)https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=1234567890&redirect_uri=https%3A%2F%2Fexample.com%2Fauth%3Fkey%3Dvalue&state=12345abcde&scope=profile openid&nonce=09876xyz
- client_id:LINEログインチャネルのチャネルID
- redirect_uri:LINE Developersコンソールに登録したコールバックURLをURLエンコードした文字列
- 任意のクエリパラメータを付与できるらしい。のでこれで店舗ごとに出し分けたりするのかな。
- prompt:noneをつけるとSSOをスキップできるらしい。多分これかな。
- bot_prompt:normalだと同意画面で友達追加できて、aggressiveだと同意後に友達追加するか確認する画面を別で出せるっぽい。
- normalは同意画面で表示される「友達追加」のボタンを押下しないと追加できないっぽいのでaggressiveの方が効果いい?
- 別のやり方もありそうだけど一旦aggressiveでいく
- normalは同意画面で表示される「友達追加」のボタンを押下しないと追加できないっぽいのでaggressiveの方が効果いい?
- ex)https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=1234567890&redirect_uri=https%3A%2F%2Fexample.com%2Fauth%3Fkey%3Dvalue&state=12345abcde&scope=profile openid&nonce=09876xyz
ざっくり書いてみる
雑だけどこんな感じなのかな?
シーケンス図のお作法もっと調べなきゃとは思うのと、サービス側のAPIの仕様も色々考えた方が良さそう。
あとLINE認証画面で自社サービスの利用規約に同意させられたらいいのに、とか思った。調べたけどそういうのはなさそうな雰囲気。
おわりに
これ書きながら具体的なコードはあまり浮かばなかったので、BEはより修練が必要そう
実際にちょっと作ってみようかしら、と思ってます。
あと調べていくうちにLINEミニアプリ作りたくなったので、バックエンドとか関係なく今度やってみようと思う。
Discussion