Facebook Messenger

Avrai bisogno di quanto segue per configurare il canale per 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.

  1. Accedi all'account dello sviluppatore di Facebook.

  2. 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.

  3. 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: fbapp.png
    Descrizione dell'impostazione dell'immagine: fbapp.png

    Se 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 di add-product.png
    Descrizione dell'immagine add-product.png

  4. Nella pagina Dashboard dell'app Facebook, copia il segreto dell'app e incolla in un punto conveniente nel tuo sistema.
    Descrizione di facebook-dashboard.png segue
    Descrizione dell'immagine facebook-dashboard.png

    Avrai bisogno del segreto dell'app per completare la configurazione del tuo canale Facebook.

  5. Nella dashboard dell'applicazione generare il token di accesso alla pagina selezionando la pagina Facebook.
    Descrizione di page-access-token.png:
    Descrizione dell'immagine page-access-token.png

  6. 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.

Nota

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

Se hai creato l'app prima del 26 luglio, hai tempo fino al 29 gennaio 2019 per applicare le autorizzazioni. Se hai creato la tua app dopo il 26 luglio 2018, devi aggiungere queste autorizzazioni il prima possibile. È possibile impostarli nella sezione Revisione app per Messenger della pagina Messenger.

Passo 2: Creare il canale in Digital Assistant

Completare la finestra di dialogo Crea canale fornendo le chiavi Token di accesso alla pagina e Segreto applicazione da Facebook.
  1. In Digital Assistant, fare clic sui canali nel menu a sinistra, quindi scegliere Utenti.
  2. Fare quindi clic su Aggiungi canale per aprire la finestra di dialogo Crea canale.

  3. Dai un nome al tuo canale.

  4. Scegliere Facebook Messenger come tipo di canale.
    Di seguito è riportata la descrizione di create-channel-dialog-started.png
    Descrizione della figura create-channel-dialog-started.png

  5. Nel campo Token di accesso pagina incollare il token di accesso alla pagina generato in precedenza nella procedura di impostazione di Facebook Messenger.

  6. Nel campo Segreto applicazione incollare il segreto dell'applicazione copiato in precedenza nella procedura Imposta Facebook Messenger.

  7. Fare clic su Crea.

  8. 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 di fb-channel-complete.png
    Descrizione dell'immagine fb-channel-complete.png

Passo 3: configurare il webhook di Facebook Messenger

In Facebook Messenger, definire l'URL di callback utilizzando l'URL del webhook generato da Digital Assistant nel passo precedente.
  1. In Facebook Messenger, assicurati di aver selezionato il progetto creato inizialmente per il webhook.



  2. Fare clic su Messenger, quindi scegliere Impostazioni.
    Descrizione di fb-navbar.png:
    Descrizione dell'immagine fb-navbar.png

  3. Fare clic su Sottoscrivi a eventi per aprire la finestra di dialogo Sottoscrizione nuova pagina.

  4. 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.

  5. Copiare il token di verifica generato da Digital Assistant e incollarlo nel campo Verifica token.

  6. 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.

  7. Fare clic su Verifica e salva.
  8. Iscriviti alla pagina:
    1. Nella sezione Webhooks delle impostazioni di Messenger, selezionare la pagina Facebook per l'assistente digitale (o abilità standalone).

    2. 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 icona per l'elenco a discesa Instrada a ... 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 (Questa è un'immagine dell'icona dell'app di Facebook.). 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 del test: bot.png
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.

  1. 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

  2. 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.
  3. 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
  • compact
  • large
Elementi di risposta con i seguenti attributi:
  • type: "cards"
  • cardLayout: "vertical"
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 compact, ovvero l'opposito dell'impostazione predefinita di Facebook.

image_aspect_ratio
  • horizontal
  • square
Elementi di risposta con i seguenti attributi:
  • type: "cards"
  • cardLayout: "horizontal"
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
  • true
  • false
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
  • compact
  • tall
  • full
Uno degli elementi riportati di seguito.
  • Una scheda in cui è specificata la proprietà "url"
  • Un action dove "type": "url"
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
  • true
  • false
Uno degli elementi riportati di seguito.
  • Una scheda in cui è specificata la proprietà "url"
  • Un action dove "type": "url"
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.
  • Una scheda in cui è specificata la proprietà "url"
  • Un action dove "type": "url"
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
  • hide
Uno degli elementi riportati di seguito.
  • Una scheda in cui è specificata la proprietà "url"
  • Un action dove "type": "url"
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
  • Un action dove "type": "share"
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.