「会員登録した人には会員メニュー、まだの人には登録を促すメニューを見せたい」。こうしたユーザーごとのリッチメニューの出し分けは、LINEのMessaging APIを使うと実現できます。この記事では、その仕組みと注意点を解説します。

出し分けはMessaging APIの機能

LINEの公式ドキュメントでは、リッチメニューをユーザー単位で設定できるのはMessaging APIのみとされています。LINE Official Account Manager(管理画面)で作るリッチメニューは、全員に同じものが表示されるデフォルトのメニューです。

表示の優先順位

LINEのリッチメニューには、次の優先順位があります。

  1. ユーザー単位でリンクしたリッチメニュー(Messaging API)
  2. Messaging APIで設定したデフォルトのリッチメニュー
  3. 管理画面で設定したデフォルトのリッチメニュー

ユーザー単位のメニューをリンクされた人には、デフォルトのメニューより優先してそのメニューが表示されます。リンクされていない人には、デフォルトのメニューが表示されます。

設定の流れ

  1. 出し分けたいリッチメニュー(例:会員用)を作成し、画像をアップロードする
  2. 対象のユーザーに、そのリッチメニューをリンクする
  3. 元に戻したいときは、リンクを解除する(解除するとデフォルトのメニューが表示される)

Messaging APIには、次のような操作が用意されています。

操作内容
ユーザーにリンク1人のユーザーにリッチメニューをリンクする
まとめてリンク複数のユーザーに一度にリンクする(1回のリクエストで最大500人)
リンク解除1人のユーザーのリンクを解除する
まとめてリンク解除複数のユーザーのリンクを一度に解除する(最大500人)

1人のユーザーにリンクできるリッチメニューは1つです。すでにリンクされている人に別のメニューをリンクすると、新しいメニューに置き換わります。

反映のタイミング

ユーザー単位のリッチメニューは、リンクするとすぐに反映されます。デフォルトのメニューがトーク画面に入り直したときに反映される(APIで設定したものは1分程度かかる場合がある)のと比べると、即時性が高いのが特徴です。

注意点

まとめてリンクは非同期で処理される

複数のユーザーにまとめてリンクする操作は、受け付けたあとに非同期で処理されます。受け付けの応答が返っても、すべてのユーザーにリンクされたとは限りません。

リンクできないユーザーがいる

友だちでないユーザーやブロックしているユーザーなどには、リクエストが成功の応答を返しても、実際にはリンクされない場合があります。

デフォルトを変えても表示が変わらない人がいる

ユーザー単位のメニューは優先度がいちばん高いため、リンクされている人には、デフォルトのメニューを変えても新しいデフォルトが表示されません。タブ切り替えのメニューを使っている場合も、タブを切り替えたユーザーにはユーザー単位のメニューが紐づく点に注意が必要です(タブ切り替えの仕組み)。

画像のないメニューはリンクできない

画像をアップロードしていないリッチメニューは、ユーザーにリンクできません。

出し分けの活用例

  • 会員と非会員:会員にはマイページ・ポイント、非会員には会員登録のボタンを大きく
  • 購入前と購入後:購入後は、使い方ガイドやサポート窓口を目立たせる
  • 店舗ごと:よく使う店舗の予約・アクセス情報を出す

まとめ

  • ユーザーごとの出し分けはMessaging APIの機能で、管理画面では設定できない
  • ユーザー単位のメニューはデフォルトより優先され、リンクするとすぐ反映される
  • まとめてリンクは非同期で、リンクされないユーザーもいる点に注意

出し分けの土台になるのは、出し分ける一つ一つのリッチメニューです。richmenu-aiでは、デザイン・タップ領域の設定からLINEへの反映まで、出し分けに使うメニュー自体を手早く作れます。

参考(公式ドキュメント)