persistent_menuリファレンス

ボットに固定メニューを設定すれば、ユーザーは会話中いつでも、提供されている機能を探したり簡単にアクセスしたりできます。

ユーザーは常に固定メニューを利用できます。このメニューには、ユーザーがあらゆる場面で利用するトップレベルアクションを含めるようにします。固定メニューは、初めてボットを使用するユーザーや久しぶりにボットを使用するユーザーがボットの基本的な機能を簡単に理解できるようなものにします。一定の期間会話していないユーザーが戻ってきた場合、このメニューがスレッドに自動的に表示されます。この設定はMessengerプロフィールAPIリファレンスの一部です

固定メニューは、ユーザーレベルで設定したり変更したりすることもできます。詳しくは、ユーザーレベルメニューをご覧ください。

要件

固定メニューを使用するには、次のことが必要です。

  • スタートボタンを設定する。
  • ページの「管理者」権限とボットを関連付ける。

persistent_menuフォーマット

固定メニューの例

{
    "persistent_menu": [
        {
            "locale": "default",
            "composer_input_disabled": false,
            "call_to_actions": [
                {
                    "type": "postback",
                    "title": "Talk to an agent",
                    "payload": "CARE_HELP"
                },
                {
                    "type": "postback",
                    "title": "Outfit suggestions",
                    "payload": "CURATION"
                },
                {
                    "type": "web_url",
                    "title": "Shop now",
                    "url": "https://www.originalcoastclothing.com/",
                    "webview_height_ratio": "full"
                }
            ]
        }
    ]
}

プロパティ

プロパティ 説明

locale

文字列

異なるロケールの固定メニューを定義するオブジェクトの配列。ユーザーのロケールに一致したlocaleプロパティを持つメニューが表示されます。


persistent_menu配列の少なくとも1つのオブジェクトが"locale": "default"を指定する必要があります。ユーザーのロケールと一致するlocaleプロパティがどのオブジェクトにもない場合、このメニューが使用されます。


サポートされているロケールのリストをご覧ください。

composer_input_disabled

ブーリアン

trueに設定すると、Messengerコンポーザーフィールドが無効になります。つまり、固定メニュー、ポストバック、ボタン、ウェブビュー経由でのみ、ボットとやり取りできます。


デフォルトはfalseです。

disabled_surfaces

配列

固定メニューを無効にするインターフェース名の配列。現在、customer_chat_pluginだけがサポートされています。

call_to_actions

配列<menu_item>

固定メニューのトップレベルメニュー項目の配列。最大3つの項目を指定できます。


"composer_input_disabled": trueの場合は必須です。

プロパティ 説明

type

文字列

メニュー項目のタイプ。使用できる値は以下のとおりです。

title

文字列

メニュー項目に表示されるタイトル。30文字以内。

url

文字列

ボタンがタップされたときに開かれるURL。タイプがweb_urlの場合、必須です。

payload

文字列

messaging_postbacksイベントでWebhookに送り返されるデータ。タイプがpostbackの場合、必須です。最大1,000文字。

webview_height_ratio

文字列

任意。ウェブビューの高さ。有効な値は、compacttallfullです。

messenger_extensions

ブーリアン

任意。項目のタイプがweb_urlであり、MessengerエクステンションSDKがウェブビューで使用される場合、trueでなければなりません。

fallback_url

文字列

任意。MessengerエクステンションSDKをサポートしていないクライアントの場合に、ウェブビューで開かれるURL。これが定義されていない場合、urlがフォールバックとして使用されます。"messenger_extensions": trueの場合にのみ指定できます。

webview_share_button

文字列

任意。hideに設定して、ウェブビューでの(個人情報の)シェアを無効にします。

固定メニューを無効にする

チャットプラグインのボットで固定メニューを無効にすることが望ましいケースがあります。これを行うには、固定メニューを設定するときに、"disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"]を追加します。

MessengerプロフィールAPIペイロードの例

{
  "persistent_menu":[
    {
      "locale":"default",
      "disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"],
      "composer_input_disabled": false,      
      "call_to_actions":[
        {
          "title":"My Account",
          "type":"postback",
          "payload":"PAYBILL_PAYLOAD"
        }
      ]
    }
  ]
}

レート制限

MessengerプロフィールAPIへの呼び出し間隔は、10分あたり10回に制限されています。このレート制限はページごとに施行されます。

ユーザーレベルメニューの呼び出しは、1ユーザーあたり10分間に10回のAPI呼び出しに制限されます。このレート制限はページ単位で適用されます。