Il menu always-on

Questo documento mostra come aggiungere in modo programmatico il menu always-on alla tua esperienza di messaggistica.

Menu always-on nidificato

Messenger from Meta per Android (v276+) non supporterà più i menu always-on nidificati. Le pagine che contengono elementi del menu nidificato verranno visualizzate come liste semplici su tutte le piattaforme (web, iOS e Android v276+). Riteniamo che ciò offrirà alle persone un'esperienza ancora migliore su Messenger. Il supporto per i menu nidificati verrà rimosso sia dall'API Messenger Profile sia dall'API Custom User Settings nella versione 8.0 dell'API Graph, con una modifica sostanziale dopo 2 anni su tutte le versioni.

Come funziona

Il menu always-on ti consente di creare e inviare un menu delle funzioni principali della tua azienda, come orari di apertura, sedi dei punti vendita e prodotti, che sia sempre visibile nella conversazione su Messenger di una persona con la tua azienda.

Quando una persona clicca su un elemento del menu, viene inviata una notifica webhook postback al tuo servizio. La notifica webhook contiene informazioni sull'articolo selezionato e su chi l'ha selezionato. Questa azione di selezione dell'articolo apre la finestra dei messaggi standard. Hai 24 ore per rispondere.

Se sono impostati dei Comandi, questi avranno la priorità rispetto al menu always-on.

Requisiti

Affinché il menu always-on venga visualizzato, devono essere vere le seguenti condizioni:

  • La persona deve utilizzare almeno la versione 106 di Messenger su iOS o Android.
  • La Pagina Facebook per cui è stata attivata l'iscrizione del bot di Messenger deve essere stata pubblicata.
  • Il bot di Messenger deve essere impostato su "pubblico" nelle impostazioni dell'app.
  • Il bot di Messenger deve disporre dell'autorizzazione pages_messaging.
  • Deve essere stato impostato un pulsante Inizia per il bot di Messenger.

Pulsanti supportati

Il menu always-on è composto da un array di pulsanti. Nel menu always-on, sono supportati i seguenti tipi di pulsante:

Impostazione del menu always-on

Per impostare il menu always-on, invia una richiesta POST all'API Messenger Profile per impostare la proprietà persistent_menu del profilo Messenger del tuo bot.

In sostituzione del menu di livello nidificato obsoleto, sono consentiti fino a 20 pulsanti nell'array call_to_actions per l'API Graph (v8.0+).

{
    "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"
                }
            ]
        }
    ]
}

Menu always-on nidificato

Questa funzione è diventata obsoleta nella v8.0+.

Disabilitazione dello strumento di composizione

Puoi disabilitare lo strumento di composizione per rendere il menu always-on l'unico mezzo di interazione con il bot di Messenger per una persona. Ciò è utile se il tuo bot ha uno scopo molto specifico o un insieme limitato di opzioni.

A tale scopo, imposta "composer_input_disabled":true durante la creazione del menu always-on.

Localizzazione

Per i pulsanti del menu always-on, puoi fornire testo predefinito e localizzato, visualizzato in base alla lingua della persona.

A tale scopo, specifica un oggetto separato nell'array persistent_menu per ogni lingua. Per specificare la lingua per ogni oggetto, imposta la proprietà locale su una lingua supportata:

{
  "locale":"default",
  "call_to_actions":[...]
},
{
  "locale: "zh_CN",
  "call_to_actions":[...]
}

Menu di livello utente

Nuova funzione

Il 4 dicembre 2019 abbiamo apportato miglioramenti al menu always-on per supportare le modifiche dinamiche per personalizzare ulteriormente l'esperienza di conversazione.

Puoi sostituire il menu always-on a livello della pagina con un'impostazione del livello utente. Ciò consente alla tua app di controllare in modo dinamico:

  • Il clic per i pulsanti di call to action sul menu per l'utente.
  • La visibilità dello strumento di composizione per l'utente.

Per abilitare o disabilitare l'impostazione del livello utente viene utilizzato un endpoint diverso chiamato custom_user_settings. Questo endpoint supporta le chiamate POST, GET e DELETE.

Le stesse configurazioni disponibili per il menu always-on di livello di pagina si applicano al livello utente. La differenza principale consiste nel fatto che è necessario un parametro psid per indicare l'utente a cui si applica questa sostituzione.

NOTA: l'aggiornamento del menu always-on a livello utente si verifica in tempo reale, mentre per l'aggiornamento del menu always-on a livello della pagina possono essere necessarie fino a 24 ore.

Le impostazioni del livello utente sono sottoposte a rate limiting di 10 chiamate per utente per 10 min.

Esempio di richiesta POST

Sovrascriverà le impostazioni del livello della pagina correnti per questo utente.

curl -X POST -H "Content-Type: application/json" -d '{
  "psid": "<PSID>",
  "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"
                }
            ]
        }
    ]
}' "https://graph.facebook.com/v21.0/me/custom_user_settings?access_token=<PAGE_ACCESS_TOKEN>"

Esempio di richiesta GET

Recupererà l'utente corrente e le impostazioni del livello della pagina. Se non sono presenti impostazioni del livello utente, verranno restituite solo quelle del livello della pagina.

curl -X GET "https://graph.facebook.com/v21.0/me/custom_user_settings?psid=<PSID>&access_token=<PAGE_ACCESS_TOKEN>"

Risultato

{
    "data": [
      {
        "user_level_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"
                  }
              ]
            }
        ],
        "page_level_persistent_menu": [
          Original Page Menu...
        ]  
      }
  ]
}

Esempio di richiesta DELETE

Rimuoverà le impostazioni del livello utente, lasciando il menu di livello della pagina, se impostato.

curl -X DELETE 'https://graph.facebook.com/v21.0/me/custom_user_settings?psid=<PSID>&params=[%22persistent_menu%22]&access_token=<PAGE_ACCESS_TOKEN>'

Disabilitazione del menu always-on

In alcuni casi potrebbe essere preferibile disabilitare il menu always-on per il tuo bot nel plug-in per la chat. A tale scopo, aggiungi "disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"] quando imposti il menu always-on:

Esempio di payload dell'API Messenger Profile

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

Best practice

Come i pulsanti, gli elementi menu possono generare una visualizzazione web o un postback. Tieni presente che il menu di livello secondario non è supportato.

Usa il menu per i punti di ingresso nelle funzionalità del tuo bot.

Adotta uno stile descrittivo: il menu informa le persone in merito alle capacità del bot. In questo modo, gli utenti sapranno per cosa possono contattarlo in futuro.

Adotta un approccio selettivo per rappresentare le funzioni principali del tuo bot e cerca di limitare a 5 gli elementi del menu per una migliore esperienza utente.

Il menu non conterrà mai dati specifici dell'utente, poiché è lo stesso per tutti gli utenti del tuo bot, anche se puoi localizzarlo.

Non inserire un pulsante "Menu" che invii all'utente un messaggio contenente un menu. Tale contenuto deve essere inserito direttamente nel menu, poiché si tratta del suo scopo previsto.

Non inserire azioni generiche nel menu, ad es. "Riavvia".

Non usare l'area principale del menu per inserire informazioni secondarie, come quelle relative alle informazioni aziendali, alle condizioni d'uso, all'informativa sulla privacy o alla dicitura "Fornito da", a discapito delle funzionalità principali del tuo bot.

Assistenza per gli sviluppatori