Questo documento mostra come aggiungere in modo programmatico il menu always-on alla tua esperienza di messaggistica.
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 funzionaIl 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 |
Se sono impostati dei Comandi, questi avranno la priorità rispetto al menu always-on.
Affinché il menu always-on venga visualizzato, devono essere vere le seguenti condizioni:
pages_messaging
.Il menu always-on è composto da un array di pulsanti. Nel menu always-on, sono supportati i seguenti tipi di pulsante:
web_url
: specifica che l'elemento è un pulsante con URL.postback
: specifica che l'elemento è un pulsante con postback.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"
}
]
}
]
}
Questa funzione è diventata obsoleta nella v8.0+.
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.
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":[...]
}
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:
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.
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>"
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... ] } ] }
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>¶ms=[%22persistent_menu%22]&access_token=<PAGE_ACCESS_TOKEN>'
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:
{
"persistent_menu":[
{
"locale":"default",
"disabled_surfaces": ["CUSTOMER_CHAT_PLUGIN"],
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"My Account",
"type":"postback",
"payload":"PAYBILL_PAYLOAD"
}
]
}
]
}
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.