# ユーザー単位のリッチメニューを使う

このページでは、「ユーザー単位のリッチメニュー」の設定方法について説明します。

# ユーザー単位のリッチメニューとは

Messaging APIでは、リッチメニューをユーザー単位で設定できます。そのため、複数のリッチメニューを用意し、ユーザーごとに異なるリッチメニューを設定することで、ユーザー体験を向上させることもできます。

ユーザー単位のリッチメニューには、以下のような特徴があります。

  1. 表示優先度がデフォルトのリッチメニューよりも高い
    • ユーザー単位のリッチメニューは、表示優先度がデフォルトのリッチメニューよりも高く設定されています。そのため、LINE公式アカウントにデフォルトのリッチメニューを設定している場合に、あるユーザーに対して、ユーザー単位のリッチメニューを設定したときには、ユーザー単位のリッチメニューが優先して表示されます。詳しくは、「リッチメニューの表示優先度」を参照してください。
  2. 即時に設定が反映され表示が切り替わる

# ユーザー単位のリッチメニューを設定する

ユーザー単位のリッチメニューの基本的な設定手順は以下のとおりです。

  1. リッチメニューを作成し、画像を添付する
  2. ユーザーIDを準備する
  3. リッチメニューとユーザーをリンクする
  4. リッチメニューとユーザーのリンクを解除して、ユーザー単位のリッチメニューの表示を終了する(任意)

# 1. リッチメニューを作成し、画像を添付する

まずはリッチメニューを作成します。リッチメニューの作成方法について詳しくは、「リッチメニューを使う」を参照してください。

ここでは、以下のリッチメニュー用のテンプレート画像(richmenu-template-guide-07.png)を使用します。任意のディレクトリに保存してください。

このガイドで使用するリッチメニュー用のテンプレート画像

以下のコマンドをターミナルで実行して、リッチメニューを作成してください。

curl -v -X POST https://api.line.me/v2/bot/richmenu \
-H 'Authorization: Bearer {channel access token}' \
-H 'Content-Type: application/json' \
-d \
'{
    "size": {
        "width": 2500,
        "height": 1686
    },
    "selected": true,
    "name": "ユーザー単位のリッチメニューのテスト",
    "chatBarText": "Tap to open",
    "areas": [
        {
            "bounds": {
                "x": 0,
                "y": 0,
                "width": 2500,
                "height": 1686
            },
            "action": {
                "type": "uri",
                "label": "タップ領域A",
                "uri": "https://developers.line.biz/ja/news/"
            }
        }
    ]
}'

次に、以下のコマンドをターミナルで実行して、リッチメニューに画像をアップロードして添付してください。

curl -v -X POST https://api-data.line.me/v2/bot/richmenu/{richMenuId}/content \
-H "Authorization: Bearer {channel access token}" \
-H "Content-Type: image/png" \
-T richmenu-template-guide-07.png

# 2. ユーザーIDを準備する

リッチメニューを表示するユーザーのユーザーIDを準備します。ここでは、実際に表示を確認するために自分のユーザーIDを用意してください。

ユーザーIDの例:U8189cf6745fc0d808977bdb0b9f22995

ユーザーIDの取得について詳しくは、「ユーザーIDを取得する」の「開発者が自分自身のユーザーIDを取得する」を参照してください。

リッチメニューとユーザーIDが用意できたら、ユーザーとリッチメニューをリンクします。以下のコマンドをターミナルで実行してください。

curl -v -X POST https://api.line.me/v2/bot/user/{userId}/richmenu/{richMenuId} \
-H "Authorization: Bearer {channel access token}"

# 3-1. リッチメニューの表示を確認する

手順3.で設定したユーザー単位のリッチメニューが表示されることを確認します。リッチメニューを設定したLINE公式アカウントのトーク画面を開きます。

最後にリッチメニューとユーザーのリンクを解除し、リッチメニューの表示を終了します。手順4.で開いたトーク画面を表示したまま、以下のコマンドをターミナルで実行してください。

curl -v -X DELETE https://api.line.me/v2/bot/user/{userId}/richmenu \
-H 'Authorization: Bearer {channel access token}'

ユーザー単位のリッチメニューは設定が即時に反映されるため、実行が完了したタイミングで、ユーザー単位のリッチメニューの表示が終了します。

なお、デフォルトのリッチメニューが設定されている場合は、デフォルトのリッチメニューが代わりに表示されます。

# ユーザーがリッチメニューを切り替えられるようにする

ユーザー単位のリッチメニューを活用して、タブ切り替えが可能なリッチメニューをユーザーに提供できます。リッチメニューエイリアスリッチメニュー切替アクションを使うことで、簡単にリッチメニューの切り替えを実装できます。

詳しくは、「リッチメニューでタブ切り替えを行う」を参照してください。