「会員登録した人には会員メニュー、まだの人には登録を促すメニューを見せたい」。こうしたユーザーごとのリッチメニューの出し分けは、LINEのMessaging APIを使うと実現できます。この記事では、その仕組みと注意点を解説します。
出し分けはMessaging APIの機能
LINEの公式ドキュメントでは、リッチメニューをユーザー単位で設定できるのはMessaging APIのみとされています。LINE Official Account Manager(管理画面)で作るリッチメニューは、全員に同じものが表示されるデフォルトのメニューです。
表示の優先順位
LINEのリッチメニューには、次の優先順位があります。
- ユーザー単位でリンクしたリッチメニュー(Messaging API)
- Messaging APIで設定したデフォルトのリッチメニュー
- 管理画面で設定したデフォルトのリッチメニュー
ユーザー単位のメニューをリンクされた人には、デフォルトのメニューより優先してそのメニューが表示されます。リンクされていない人には、デフォルトのメニューが表示されます。
設定の流れ
- 出し分けたいリッチメニュー(例:会員用)を作成し、画像をアップロードする
- 対象のユーザーに、そのリッチメニューをリンクする
- 元に戻したいときは、リンクを解除する(解除するとデフォルトのメニューが表示される)
Messaging APIには、次のような操作が用意されています。
| 操作 | 内容 |
|---|---|
| ユーザーにリンク | 1人のユーザーにリッチメニューをリンクする |
| まとめてリンク | 複数のユーザーに一度にリンクする(1回のリクエストで最大500人) |
| リンク解除 | 1人のユーザーのリンクを解除する |
| まとめてリンク解除 | 複数のユーザーのリンクを一度に解除する(最大500人) |
1人のユーザーにリンクできるリッチメニューは1つです。すでにリンクされている人に別のメニューをリンクすると、新しいメニューに置き換わります。
反映のタイミング
ユーザー単位のリッチメニューは、リンクするとすぐに反映されます。デフォルトのメニューがトーク画面に入り直したときに反映される(APIで設定したものは1分程度かかる場合がある)のと比べると、即時性が高いのが特徴です。
注意点
まとめてリンクは非同期で処理される
複数のユーザーにまとめてリンクする操作は、受け付けたあとに非同期で処理されます。受け付けの応答が返っても、すべてのユーザーにリンクされたとは限りません。
リンクできないユーザーがいる
友だちでないユーザーやブロックしているユーザーなどには、リクエストが成功の応答を返しても、実際にはリンクされない場合があります。
デフォルトを変えても表示が変わらない人がいる
ユーザー単位のメニューは優先度がいちばん高いため、リンクされている人には、デフォルトのメニューを変えても新しいデフォルトが表示されません。タブ切り替えのメニューを使っている場合も、タブを切り替えたユーザーにはユーザー単位のメニューが紐づく点に注意が必要です(タブ切り替えの仕組み)。
画像のないメニューはリンクできない
画像をアップロードしていないリッチメニューは、ユーザーにリンクできません。
出し分けの活用例
- 会員と非会員:会員にはマイページ・ポイント、非会員には会員登録のボタンを大きく
- 購入前と購入後:購入後は、使い方ガイドやサポート窓口を目立たせる
- 店舗ごと:よく使う店舗の予約・アクセス情報を出す
まとめ
- ユーザーごとの出し分けはMessaging APIの機能で、管理画面では設定できない
- ユーザー単位のメニューはデフォルトより優先され、リンクするとすぐ反映される
- まとめてリンクは非同期で、リンクされないユーザーもいる点に注意
出し分けの土台になるのは、出し分ける一つ一つのリッチメニューです。richmenu-aiでは、デザイン・タップ領域の設定からLINEへの反映まで、出し分けに使うメニュー自体を手早く作れます。