Facebook Messenger
-
Un account sviluppatore Facebook
-
Una pagina Facebook
-
Un'applicazione Facebook
-
Un token di accesso alla pagina
-
ID segreto applicazione
-
URL webhook
-
Token di verifica
Per eseguire il tuo assistente digitale (o una competenza autonoma) su Facebook Messenger, devi prima impostare una pagina Facebook e un'app Facebook. Per ulteriori informazioni, consulta la documentazione sulla piattaforma di messaggistica Facebook.
In poche parole, ecco come funziona. La pagina Facebook ospita il tuo assistente digitale. Gli utenti chat con l'assistente digitale tramite questa pagina quando utilizzano la finestra di chat in un browser desktop. Quando utilizzano un dispositivo mobile, gli utenti interagiscono con il tuo assistente digitale direttamente tramite Facebook Messenger stesso. In questo scenario, l'app Facebook consente al tuo assistente digitale di ottenere i messaggi gestiti da Facebook Messenger.
Per creare un canale Facebook Messenger, sono necessari artifact generati sia da Oracle Digital Assistant che da Facebook Messenger.
Da Oracle Digital Assistant, avrai bisogno di:
- l'URL del webhook che collega il tuo assistente digitale a Facebook Messenger
- il token di verifica che consente a Facebook Messenger di identificare l'assistente digitale
Da Facebook Messenger avrai bisogno di:
- il token di accesso alla pagina
- ID segreto applicazione
Poiché è necessario trasferire questi artifact tra Digital Assistant e Facebook Messenger, sarà necessario passare da una piattaforma all'altra durante la configurazione del canale.
Passo 1: Impostare Facebook Messenger
Inizia generando il Segreto applicazione e il token di accesso alla pagina in Facebook Messenger.
-
Accedi all'account dello sviluppatore di Facebook.
-
Crea una pagina Facebook che ospita il tuo bot. La descrizione, le immagini e la copertina aggiunte alla pagina identificheranno il bot per i suoi utenti.
-
Successivamente, crea l'app di Facebook che ti collegherai a questa pagina. Poiché si tratta di un'applicazione Messenger, scegliere Applicazioni per Messenger, quindi fare clic su Crea ID applicazione.
Descrizione dell'impostazione dell'immagine: fbapp.pngSe l'opzione Applicazioni per Messenger non è stata scelta in questa finestra di dialogo (ad esempio, se si sta creando un'applicazione di test), fare clic su Aggiungi prodotto nella barra di navigazione a sinistra, scegliere Messaggero nella pagina Impostazione prodotto, quindi fare clic su Per iniziare.
Descrizione dell'immagine add-product.png - Nella pagina Dashboard dell'app Facebook, copia il segreto dell'app e incolla in un punto conveniente nel tuo sistema.
Descrizione dell'immagine facebook-dashboard.pngAvrai bisogno del segreto dell'app per completare la configurazione del tuo canale Facebook.
-
Nella dashboard dell'applicazione generare il token di accesso alla pagina selezionando la pagina Facebook.
Descrizione dell'immagine page-access-token.png - Copiare il token di accesso e incollarlo in un punto appropriato.
Questo token, che consente all'applicazione Facebook di accedere all'API di messaggistica di Facebook, consente di completare la definizione del canale in Digital Assistant.
Le modifiche all'API del profilo utente Facebook richiedono l'obbligo di richiedere le autorizzazioni per determinati campi del profilo utente per qualsiasi applicazione Facebook creata prima o dopo il 26 luglio 2018. Senza le seguenti autorizzazioni, il nome dell'utente verrà popolato come stringa numerica casuale.
-
pages_messaging
-
pages_user_locale
-
pages_user_timezone
Passo 2: Creare il canale in Digital Assistant
- In Digital Assistant, fare clic sui canali nel menu a sinistra, quindi scegliere Utenti.
-
Fare quindi clic su Aggiungi canale per aprire la finestra di dialogo Crea canale.
-
Dai un nome al tuo canale.
-
Scegliere Facebook Messenger come tipo di canale.
Descrizione della figura create-channel-dialog-started.png -
Nel campo Token di accesso pagina incollare il token di accesso alla pagina generato in precedenza nella procedura di impostazione di Facebook Messenger.
-
Nel campo Segreto applicazione incollare il segreto dell'applicazione copiato in precedenza nella procedura Imposta Facebook Messenger.
-
Fare clic su Crea.
-
Nella pagina Canali, copiare sia il token di verifica che l'URL WebHook e incollarli in un punto appropriato nel sistema. Avrai bisogno di questi per configurare il webhook di Facebook.
Descrizione dell'immagine fb-channel-complete.png
Passo 3: configurare il webhook di Facebook Messenger
-
In Facebook Messenger, assicurati di aver selezionato il progetto creato inizialmente per il webhook.
-
Fare clic su Messenger, quindi scegliere Impostazioni.
Descrizione dell'immagine fb-navbar.png -
Fare clic su Sottoscrivi a eventi per aprire la finestra di dialogo Sottoscrizione nuova pagina.
-
Copiare l'URL del webhook ottenuto dalla pagina Canali di Digital Assistant e incollarlo nel campo URL CallBack della finestra di dialogo Nuova sottoscrizione pagina.
-
Copiare il token di verifica generato da Digital Assistant e incollarlo nel campo Verifica token.
-
In Campi sottoscrizione selezionare gli eventi di callback messaggi e messaging_postbacks.
L'evento
messages
viene attivato ogni volta che qualcuno invia un messaggio alla tua pagina Facebook. - Fare clic su Verifica e salva.
-
Iscriviti alla pagina:
-
Nella sezione Webhooks delle impostazioni di Messenger, selezionare la pagina Facebook per l'assistente digitale (o abilità standalone).
-
Fare clic su Sottometti.
Suggerimento
Potrebbe essere necessario riavviare il webhook facendo clic su Annulla sottoscrizione e quindi su Sottoscrivi. -
Passaggio 4: abilitare il canale Facebook
Una volta completata la configurazione, sei pronto per attivare il canale Facebook.
- In Digital Assistant, selezionare il canale e attivare il controllo Canale abilitato.
- Fare clic su
e selezionare l'assistente digitale o lo skill che si desidera associare al canale.
Ora puoi testare il bot attraverso il canale.
Passo 5: Prova il tuo bot su Facebook Messenger
Con la configurazione del canale Facebook e della messaggistica completa, puoi testare il tuo bot utilizzando la tua pagina Facebook, Facebook Messenger (https://www.messenger.com/
) e l'app Facebook Messenger sul tuo telefono (). Una volta individuato il bot nella ricerca, sei pronto per iniziare a chattare con esso. È possibile visualizzare in tempo reale le modifiche apportate al flusso della finestra di dialogo.
Descrizione della figura test-bot.png
Menu persistente
Facebook Messenger consente di creare un menu persistente accanto al campo Messaggio. Per ulteriori informazioni sulla funzione, vedere https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/.
Ecco un esempio che mostra le voci di menu persistenti per "Order Pizza" e "Order Pasta":
Crea una voce di menu persistente
Per aggiungere voci di menu persistenti di Facebook per un assistente digitale o uno skill autonomo, effettuare le operazioni riportate di seguito.
- Assicurarsi di disporre di tutti i prerequisiti, incluso un pulsante per iniziare.
Questi prerequisiti sono elencati qui: https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/#requirements
- Aggiungere un'azione per ogni voce di menu nell'array
call_to_actions
del menu persistente di Facebook, come descritto in genere in https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/#set_menu. - Impostare le voci di menu persistenti con una chiamata POST nell'API della piattaforma Messenger.
L'URI della richiesta è
https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>
, dove<PAGE_ACCESS_TOKEN>
è il token di accesso alla pagina per l'applicazione Facebook.
Voci di menu persistenti per un assistente digitale
Di seguito è riportato il formato del POST nell'API della piattaforma di messaggistica per l'aggiunta di voci di menu persistenti di Facebook per un assistente digitale.
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"menu item display name",
"type":"postback",
"payload":"{\"action\":\"system.textReceived\",\"variables\": {\"system.text\": \"utterance that contains the skill's invocation name\"}}"
}
]
}
]
}
Per il payload, utilizzare un'azione system.textReceived
che passa un'espressione da Facebook Messenger all'assistente digitale tramite una variabile system.text
. Tale espressione dovrebbe contenere il nome di invocazione della competenza di destinazione (cioè essere un'invocazione esplicita) al fine di garantire un corretto instradamento.
Ecco un esempio di creazione di due voci di menu persistenti per la tua abilità in Facebook Messenger ("Order Pizza" e "Order Pasta"):
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"Order Pizza",
"type":"postback",
"payload":"{\"action\":\"system.textReceived\",\"variables\": {\"system.text\": \"Order pizza from Pizza Joe \"}"
},
{
"title":"Order Pasta",
"type":"postback",
"payload":"{\"action\":\"system.textReceived\",\"variables\": {\"system.text\": \"Order pasta from Pizza Joe \"}"
}
]
}
]
}
Voci di menu persistenti per una competenza autonoma
Di seguito è riportato il formato POST nell'API della piattaforma di messaggistica per l'aggiunta di voci di menu persistenti di Facebook per uno skill standalone.
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"menu item display name",
"type":"postback",
"payload":"{\"action\":\"action name\",\"variables\": {}"
}
]
}
]
}
Il payload è il nome dell'evento mappato al flusso che si desidera attivare nel flusso della finestra di dialogo dello skill.
E poi faresti riferimento a quell'azione di aiuto nel menu persistente di Facebook.
{
"persistent_menu":[
{
"locale":"default",
"composer_input_disabled": false,
"call_to_actions":[
{
"title":"Help",
"type":"postback",
"payload":"{\"action\":\"help\",\"variables\": {}"
}
]
}
]
}
Funzioni supportate
I canali di Facebook Messenger in Digital Assistant supportano le seguenti funzionalità:
- testo (sia di invio che di ricezione)
- immagini (sia di invio che di ricezione)
- file (sia di invio che di ricezione)
- emoji (sia di invio che di ricezione)
- posizione, ma non più valida (sia di invio che di ricezione)
- collegamenti
- postback
- richieste di posizione
- proprietà personalizzate
- componenti carosello
- elencare i componenti
Se si intende indirizzare la propria abilità a più canali con diverse funzionalità di formattazione e sintassi, è possibile utilizzare il markup HTML di base nei messaggi. In tal caso, tale markup verrà automaticamente convertito nel formato di markdown di Facebook Messenger quando il messaggio viene trasmesso al canale. Questo è particolarmente utile se stai indirizzando le tue abilità ad altri canali oltre a Facebook Messenger. Vedere Formattazione di testo ricco nei canali.
Vincoli messaggio
I canali di Facebook Messenger in Digital Assistant hanno i seguenti vincoli di messaggio:
- Messaggi di testo
- Lunghezza massima del messaggio di testo: 640 caratteri. Se la lunghezza supera 640, il testo viene diviso su più messaggi.
- Lunghezza massima dell'etichetta di azione testo: 20 caratteri
- Tipi di azioni di testo consentiti: Postback, Call, URL
- Numero massimo di azioni di testo: 3. Se ci sono più azioni di testo, il messaggio viene convertito in più schede orizzontali, con lo stesso testo utilizzato come titolo su ogni scheda e ogni scheda contenente fino a 3 azioni.
- Schede orizzontali
- Lunghezza massima del titolo: 80 caratteri
- Lunghezza massima della descrizione: 80 caratteri
- Lunghezza massima dell'etichetta di azione della scheda: 20 caratteri
- Numero massimo di carte: 10
- Numero massimo di azioni carta: 3. Se il numero di azioni della scheda supera 3, la scheda viene duplicata per eseguire il rendering delle azioni della scheda rimanenti.
- Numero minimo di azioni carta: 0
- Numero massimo di azioni elenco carte: 0
- È richiesta almeno una descrizione, un'immagine o un'azione?: Sì
- Tipi di azioni della carta consentite: Postback, Call, URL, Condividi
- Tipi di azioni elenco carte consentite: N/D
- Schede verticali
- Non supportata
- Messaggi allegato
- Supportato?: Sì
- Azioni allegato consentite?: No
- Pulsanti di azione
- Lunghezza massima dell'etichetta di azione globale: 20 caratteri
- Numero massimo di azioni globali: 11
- Tipi di azioni globali consentiti: Postback
Estensioni canale Facebook Messenger
Per i canali di Facebook Messenger, è possibile estendere la funzionalità dei componenti di Common Response con funzionalità specifiche di Facebook.
Per accedere alle estensioni, utilizzare l'elemento channelCustomProperties
nei metadati del componente Risposta comune e impostare le proprietà appropriate. Il codice ha il formato seguente:
...
channelCustomProperties:
- channel: "facebook"
properties:
PROPERTY_NAME: "PROPERTY_VALUE"
...
Di seguito sono riportate le proprietà personalizzate disponibili per i canali di Facebook Messenger:
Nome proprietà | Valori ammessi | Si applica a... | descrizione; |
---|---|---|---|
top_element_style |
|
Elementi di risposta con i seguenti attributi:
|
Determina la modalità di visualizzazione dell'immagine della prima scheda. Per ulteriori informazioni, vedere https://developers.facebook.com/docs/messenger-platform/send-messages/template/list/#cover_image.
Se non viene specificato, Oracle Digital Assistant imposta per impostazione predefinita questa proprietà su |
image_aspect_ratio |
|
Elementi di risposta con i seguenti attributi:
|
Le proporzioni utilizzate per eseguire il rendering delle immagini. L'impostazione predefinita è horizontal (1.91:1). square imposta le proporzioni su 1:1 . Vedere https://developers.facebook.com/docs/messenger-platform/reference/template/generic#attachment |
sharable |
|
Elementi di risposta di tipo cards .
|
Impostare su true per abilitare il pulsante di condivisione nativa in Messenger per il messaggio del modello. L'impostazione predefinita è false . Vedere https://developers.facebook.com/docs/messenger-platform/reference/template/generic#attachment |
webview_height_ratio |
|
Uno degli elementi riportati di seguito.
|
Altezza della vista Web aperta quando si tocca il pulsante URL o si tocca l'altezza della scheda con la proprietà URL specificata. Vedere https://developers.facebook.com/docs/messenger-platform/reference/buttons/url#properties |
messenger_extensions |
|
Uno degli elementi riportati di seguito.
|
Messenger Extensions ti offre la possibilità di integrare strettamente le esperienze nella webview con l'esperienza di Messenger rendendo accessibili funzionalità aggiuntive nella webview. Vedere https://developers.facebook.com/docs/messenger-platform/reference/messenger-extensions-sdk |
fallback_url |
Un URL valido | Uno degli elementi riportati di seguito.
|
L'URL da utilizzare sui client che non supportano le estensioni Messenger. Se non viene definito, come fallback verrà utilizzato il valore url . Può essere specificato solo se messenger_extensions è true. Vedere https://developers.facebook.com/docs/messenger-platform/reference/buttons/url#properties |
webview_share_button |
|
Uno degli elementi riportati di seguito.
|
Impostare su hide per disabilitare il pulsante di condivisione nella webview (per informazioni riservate). Questa azione non ha effetto sulle condivisioni avviate dallo sviluppatore che utilizza le estensioni.
|
share_contents |
Segue il formato utilizzato nell'API di invio di Facebook Messenger |
|
Il messaggio che si desidera venga visualizzato dal destinatario della condivisione, se è diverso da quello a cui è allegato questo pulsante. Vedere https://developers.facebook.com/docs/messenger-platform/reference/buttons/share#properties |
Di seguito è riportato un esempio di proprietà personalizzate definite a livello di elemento di risposta (top_element_style
) e a livello di schede (webview_height_ratio
e fallback_url
):
responseItems:
- type: "cards"
cardLayout: "vertical"
cards:
- title: "${pizzas.name}"
description: "${pizzas.description}"
imageUrl: "${pizzas.image}"
url: "${pizzas.moreInfo}"
iteratorVariable: "pizzas"
channelCustomProperties:
- channel: "facebook"
properties:
webview_height_ratio: "compact"
fallback_url: "http://www.oracle.com"
channelCustomProperties:
- channel: "facebook"
properties:
top_element_style: "large"
...
Per informazioni più generali su channelCustomProperties
, vedere Estensioni specifiche del canale.