# ユーザー単位のリッチメニューを使う
このページでは、「ユーザー単位のリッチメニュー」の設定方法について説明します。
# ユーザー単位のリッチメニューとは
Messaging APIでは、リッチメニューをユーザー単位で設定できます。そのため、複数のリッチメニューを用意し、ユーザーごとに異なるリッチメニューを設定することで、ユーザー体験を向上させることもできます。
ユーザー単位のリッチメニューには、以下のような特徴があります。
- 表示優先度がデフォルトのリッチメニューよりも高い
- ユーザー単位のリッチメニューは、表示優先度がデフォルトのリッチメニューよりも高く設定されています。そのため、LINE公式アカウントにデフォルトのリッチメニューを設定している場合に、あるユーザーに対して、ユーザー単位のリッチメニューを設定したときには、ユーザー単位のリッチメニューが優先して表示されます。詳しくは、「リッチメニューの表示優先度」を参照してください。
- 即時に設定が反映され表示が切り替わる
- ユーザー単位のリッチメニューは、ユーザーがトーク画面に再入室しなくても、即時に設定が反映され表示が切り替わります。詳しくは、「リッチメニューの設定変更が反映されるタイミング」を参照してください。
# ユーザー単位のリッチメニューを設定する
ユーザー単位のリッチメニューの基本的な設定手順は以下のとおりです。
- リッチメニューを作成し、画像を添付する
- ユーザーIDを準備する
- リッチメニューとユーザーをリンクする
- リッチメニューとユーザーのリンクを解除して、ユーザー単位のリッチメニューの表示を終了する(任意)
# 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を取得する」を参照してください。
# 3. リッチメニューとユーザーをリンクする
リッチメニューとユーザー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. リッチメニューとユーザーのリンクを解除する
最後にリッチメニューとユーザーのリンクを解除し、リッチメニューの表示を終了します。手順4.で開いたトーク画面を表示したまま、以下のコマンドをターミナルで実行してください。
curl -v -X DELETE https://api.line.me/v2/bot/user/{userId}/richmenu \
-H 'Authorization: Bearer {channel access token}'
ユーザー単位のリッチメニューは設定が即時に反映されるため、実行が完了したタイミングで、ユーザー単位のリッチメニューの表示が終了します。
なお、デフォルトのリッチメニューが設定されている場合は、デフォルトのリッチメニューが代わりに表示されます。
# ユーザーがリッチメニューを切り替えられるようにする
ユーザー単位のリッチメニューを活用して、タブ切り替えが可能なリッチメニューをユーザーに提供できます。リッチメニューエイリアスとリッチメニュー切替アクションを使うことで、簡単にリッチメニューの切り替えを実装できます。
詳しくは、「リッチメニューでタブ切り替えを行う」を参照してください。