Facebook Messenger

Vous aurez besoin des éléments suivants pour configurer le canal pour Facebook Messenger :
  • Un compte de développeur Facebook

  • Une page Facebook

  • Une application Facebook

  • Un jeton d'accès à la page

  • Une clé secrète d'application

  • L'URL du webhook

  • Un jeton de vérification

Pour exécuter votre assistant numérique (ou une compétence autonome) dans Facebook Messenger, vous devez d'abord configurer une page et une application Facebook. Pour en savoir plus, consultez la documentation relative à la plate-forme de messagerie Facebook.

En résumé, voici comment cela fonctionne. La page Facebook héberge votre assistant numérique. Les utilisateurs communiquent avec votre assistant numérique au moyen de cette page lorsqu'ils utilisent la fenêtre de clavardage d'un navigateur. Sur un appareil mobile, les utilisateurs interagissent directement avec votre assistant numérique au moyen de Facebook Messenger. Dans ce scénario, l'application Facebook permet à votre assistant numérique de recevoir les messages traités par Facebook Messenger.

Pour créer un canal Facebook Messenger, vous avez besoin des artefacts générés par Oracle Digital Assistant et par Facebook Messenger.

Depuis Oracle Digital Assistant, il vous faudra :

  • L'URL du webhook qui connecte votre assistant numérique à Facebook Messenger.
  • Le jeton de vérification qui permet à Facebook Messenger d'identifier l'assistant numérique.

De Facebook Messenger, il vous faudra :

  • Le jeton d'accès à la page
  • La clé secrète de l'application

Étant donné que vous avez besoin de transférer ces artefacts entre Digital Assistant et Facebook Messenger, vous devez passer d'une plate-forme à l'autre pendant la configuration du canal.

Étape 1 : Configurer Facebook Messenger

Pour commencer, générez la clé secrète d'application et le jeton d'accès à la page dans Facebook Messenger.

  1. Connectez-vous à votre compte de développeur Facebook.

  2. Créez une page Facebook pour héberger votre robot. La description, les images et la page de couverture que vous ajoutez à la page permettent aux utilisateurs d'identifier votre robot.

  3. Ensuite, créez l'application Facebook que vous allez lier à cette page. Comme il s'agit d'une application Messenger, sélectionnez Apps for Messenger, puis cliquez sur Créer un ID application.
    Description de setup-fbapp.png ci-dessous
    Description de l'illustration setup-fbapp.png

    If you didn't choose the Apps for Messenger option in this dialog (for example, if you’re creating a test app), then click Add Product in the left navbar, choose Messenger from the Product Setup page, and then click Get Started.
    Une description de add-product.png suit
    Description of the illustration add-product.png

  4. Dans la page Tableau de bord de l'application Facebook, copiez la clé secrète de l'application et collez-la dans un endroit pratique de votre système.
    Une description de facebook-dashboard.png suit
    Description de l'illustration facebook-dashboard.png

    Vous avez besoin de la clé secrète d'application pour achever la configuration de votre canal Facebook.

  5. Dans le tableau de bord de l'application, générez le jeton d'accès à la page en sélectionnant votre page Facebook.
    Une description de page-access-token.png suit
    Description de l'illustration page-access-token.png

  6. Copiez le jeton d'accès et collez-le à un endroit pratique.

    Vous utiliserez ce jeton, qui donne à votre application Facebook accès à l'API de messagerie de Facebook, pour compléter la définition du canal dans Digital Assistant.

Note

L'API de profil d'utilisateur Facebook ayant été modifiée, vous devez maintenant demander des autorisations pour certains champs de profil pour les applications Facebook créées avant ou après le 26 juillet 2018. Sans les autorisations suivantes, le nom de l'utilisateur sera indiqué sous la forme d'une chaîne numérique aléatoire.
  • pages_messaging

  • pages_user_locale

  • pages_user_timezone

Si vous avez créé l'application avant le 26 juillet, vous avez jusqu'au 29 janvier 2019 pour appliquer les autorisations. Si vous l'avez créée après le 26 juillet 2018, vous devez ajouter ces autorisations dès que possible. Vous pouvez les définir dans la section pp Review for Messenger (Contrôle de l'application pour Messenger) de la page Messenger.

Étape 2 : Créer le canal dans Digital Assistant

Remplissez la boîte de dialogue Create Channel (Créer un canal) en indiquant le jeton d'accès à la page et les clés secrètes d'application fournis par Facebook.
  1. Dans Digital Assistant, cliquez sur Channels (Canaux) dans le menu de gauche, puis sélectionnez Users (Utilisateurs).
  2. Cliquez ensuite sur Add Channel (Ajouter un canal) pour ouvrir la boîte de dialogue Create Channel (Créer un canal).

  3. Donnez un nom à votre canal.

  4. Sélectionnez Facebook Messenger comme type de canal.
    Une description de create-channel-dialog-started.png suit
    Description de l'illustration create-channel-dialog-started.png

  5. Dans le champ Page Access Token (Jeton d'accès à la page), collez le jeton d'accès à la page que vous avez généré précédemment dans la procédure Configurer Facebook Messenger.

  6. Dans le champ App Secret (Clé secrète d'application), collez la clé secrète d'application que vous avez copiée précédemment dans la procédure Configurer Facebook Messenger.

  7. Cliquez sur Create (Créer).

  8. Dans la page Channels (Canaux), copiez à la fois le jeton de vérification et l'URL du webhook, et collez-les à un endroit pratique de votre système. Ces options vous permettront de configurer le webhook Facebook.
    Une description de fb-channel-complete.png suit
    Description de l'illustration fb-channel-complete.png

Étape 3 : Configurer le webhook Facebook Messenger

Dans Facebook Messenger, définissez l'URL de rappel à l'aide de l'URL du webhook générée par Digital Assistant à l'étape précédente.
  1. Dans Facebook Messenger, assurez-vous que vous avez sélectionné le projet initialement créé pour le webhook.



  2. Cliquez sur Messenger, puis sélectionnez Settings (Paramètres) .
    Description de fb-navbar.png :
    Description de l'illustration fb-navbar.png

  3. Cliquez sur Subscribe to Events (S'abonner à des événements) pour ouvrir la boîte de dialogue New Page Subscription (Abonnement à la nouvelle page).

  4. Copiez l'URL du webhook obtenue sur la page Channels (Canaux) de Digital Assistant et collez-la dans le champ URL de rappel de la boîte de dialogue New Page Subscription (Abonnement à la nouvelle page).

  5. Copiez le jeton de vérification généré par Digital Assistant et collez-le dans le champ Verify Token (Jeton de vérification).

  6. Sous Subscription Fields (Champs d'abonnement), sélectionnez les événements de rappel messages et messaging_postbacks.

    L'événement messages est déclenché lorsqu'une personne envoie un message à votre page Facebook.

  7. Cliquez sur Verify and Save (Vérifier et enregistrer).
  8. Abonnez-vous à la page :
    1. Dans la section Webhooks des paramètres Messenger, sélectionnez la page Facebook pour votre assistant numérique (ou votre compétence autonome).

    2. Cliquez sur Subscribe (S'abonner).

    .

    Conseil :

    Vous devrez peut-être faire rebondir votre webhook en cliquant sur Unsubscribe (Se désabonner), puis sur Subscribe (S'abonner).

Étape 4 : Activer le canal Facebook

Une fois la configuration terminée, vous pouvez activer le canal Facebook.

  • Dans Digital Assistant, sélectionnez le canal et activez le commutateur Channel Enabled (Canal activé).
  • Cliquez sur icône de la liste déroulante Acheminer vers... et sélectionnez l'assistant numérique ou la compétence à associer au canal.

Vous pouvez maintenant tester le robot sur le canal.

Étape 5 : Tester le robot sur Facebook Messenger

Une fois la configuration du canal Facebook et de la messagerie terminée, vous pouvez tester votre robot à l'aide de votre page Facebook, de Facebook Messenger (https://www.messenger.com/) et de l'application Facebook Messenger sur votre téléphone (Ceci est une image de l'icône de l'application Facebook.). Une fois que vous avez localisé votre robot avec une recherche, vous pouvez commencer à clavarder avec lui. Vous pouvez voir les modifications que vous apportez au flux de dialogue en temps réel.
Une description de test-bot.png suit
Description de l'illustration test-bot.png

Menu persistant

Facebook Messenger vous permet de créer un menu persistant à côté de son champ Message. Voir https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/ pour des informations détaillées sur la fonction.

L'exemple suivant présente les éléments de menu persistant pour "Order Pizza" et "Order Pasta" :



Créer un élément de menu persistant

Pour ajouter des éléments de menu Facebook persistant à un assistant numérique ou à une compétence autonome, procédez de la façon suivante :

  1. Assurez-vous que tous les préalables sont présents, y compris un bouton de démarrage.

    Ces préalables sont répertoriés ici : https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/#requirements

  2. Ajoutez une action pour chaque élément dans le tableau call_to_actions du menu persistant Facebook, comme décrit à l'adresse https://developers.facebook.com/docs/messenger-platform/send-messages/persistent-menu/#set_menu.
  3. Réglez les éléments de menu persistant associés à un appel POST à l'API de plate-forme Messenger.

    L'URI de la demande est https://graph.facebook.com/v2.6/me/messenger_profile?access_token=<PAGE_ACCESS_TOKEN>, où <PAGE_ACCESS_TOKEN> est le jeton d'accès à la page de votre application Facebook.

Éléments de menu persistant pour un assistant numérique

Voici le format de l'appel POST à l'API de plate-forme Messenger pour l'ajout d'éléments de menu Facebook persistant pour un assistant numérique :

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

Pour les données utiles, vous utilisez une action system.textReceived qui transmet un énoncé Facebook Messenger à l'assistant numérique au moyen d'une variable system.text. Pour assurer un acheminement correct, l'énoncé doit contenir le nom d'appel de la compétence cible (il doit s'agir d'un appel explicite).

Voici un exemple de création de deux éléments de menu persistant pour votre compétence dans Facebook Messenger ("Order Pizza" et "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 \"}"
            }
          ]
    }
  ]
}

Éléments de menu persistant pour une compétence autonome

Voici le format de l'appel POST à l'API de plate-forme Messenger pour l'ajout d'options de menu Facebook persistant pour une compétence autonome :

{
  "persistent_menu":[
    {
      "locale":"default",
      "composer_input_disabled": false,
      "call_to_actions":[
            {
              "title":"menu item display name",
              "type":"postback",
              "payload":"{\"action\":\"action name\",\"variables\": {}"
            }
          ]
    }
  ]
}

Les données utiles sont le nom de l'événement mappé au flux que vous voulez déclencher dans le flux de dialogue de la compétence.

Vous devez ensuite référencer cette action d'aide dans le menu persistant Facebook.

{
  "persistent_menu":[
    {
      "locale":"default",
      "composer_input_disabled": false,
      "call_to_actions":[
            {
              "title":"Help",
              "type":"postback",
              "payload":"{\"action\":\"help\",\"variables\": {}"
            }
          ]
    }
  ]
}

Fonctions prises en charge

Les canaux Facebook Messenger dans Digital Assistant prennent en charge les fonctions suivantes :

  • texte (envoi et réception)
  • images (envoi et réception)
  • fichiers (envoi et réception)
  • émojis (envoi et réception)
  • emplacement, mais obsolète (envoi et réception)
  • liens
  • republications
  • demandes d'emplacement
  • propriétés personnalisées
  • composants de carrousel
  • composants de liste

Si vous ciblez votre compétence sur plusieurs canaux avec des capacités de formatage et une syntaxe différentes, vous pouvez utiliser un balisage HTML de base dans vos messages. Si vous le faites, ce balisage sera automatiquement converti au format de balisage de Facebook Messenger lorsque le message sera transmis au canal. Ceci est particulièrement utile si vous ciblez vos compétences sur d'autres canaux en plus de Facebook Messenger. Voir Formatage de texte enrichi dans les canaux.

Contraintes liées aux messages

Dans Digital Assistant, les canaux Facebook Messenger présentent les contraintes suivantes liées aux messages :

  • Messages texte
    • Longueur maximale du message texte : 640 caractères. Si la longueur dépasse 640, le texte est fractionné en plusieurs messages.
    • Longueur maximale de l'étiquette d'action de texte : 20 caractères
    • Types d'action de texte autorisés : Republication, Appel, URL
    • Nombre maximal d'actions de texte : 3. S'il y a plus d'actions de texte, le message est converti en plusieurs cartes horizontales comportant le même texte en titre et contenant jusqu'à 3 actions.
  • Cartes horizontales
    • Longueur maximale du titre : 80 caractères
    • Longueur maximale de la description : 80 caractères
    • Longueur maximale de l'étiquette d'action de carte : 20 caractères
    • Nombre maximal de cartes : 10
    • Nombre maximal d'actions de carte : 3. Si le nombre d'actions de carte dépasse 3, la carte est dupliquée pour afficher les actions restantes.
    • Nombre minimal d'actions de carte : 0
    • Nombre maximal d'actions de liste de cartes : 0
    • Au moins une description, image ou action requise? : Oui
    • Types d'action de carte autorisés : Republication, Appel, URL, Partage
    • Types d'action de liste de cartes autorisés : S.O.
  • Cartes verticales
    • Non pris en charge
  • Messages avec fichier joint
    • Pris en charge? : Oui
    • Actions de fichier joint autorisées? : Non
  • Boutons d'action
    • Longueur maximale de l'étiquette d'action globale : 20 caractères
    • Nombre maximal d'actions globales : 11
    • Types d'action globale autorisés : Republication

Extensions de canal Facebook Messenger

Pour les canaux Facebook Messenger, vous pouvez étendre la fonctionnalité des composants de réponse commune en ajoutant des capacités propres à Facebook.

Vous accédez aux extensions en utilisant l'élément channelCustomProperties des métadonnées du composant de réponse commune et en définissant les propriétés appropriées. Le code a le format suivant :

...
            channelCustomProperties:
            - channel: "facebook"
              properties:
                PROPERTY_NAME: "PROPERTY_VALUE"
...

Voici les propriétés personnalisées disponibles pour les canaux Facebook Messenger :

Nom de la propriété Valeurs autorisées S'applique à... Description
top_element_style
  • compact
  • large
Éléments de réponse ayant les attributs suivants :
  • type: "cards"
  • cardLayout: "vertical"
Détermine la manière dont l'image de la première carte est rendue. Voir https://developers.facebook.com/docs/messenger-platform/send-messages/template/list/#cover_image pour des informations détaillées.

Si cette propriété n'est pas spécifiée, Oracle Digital Assistant utilise par défaut compact, qui est le contraire de la valeur Facebook par défaut.

image_aspect_ratio
  • horizontal
  • square
Éléments de réponse ayant les attributs suivants :
  • type: "cards"
  • cardLayout: "horizontal"
Rapport hauteur/largeur utilisé pour le rendu des images. La valeur par défaut est horizontal (1,91:1). La valeur square règle le rapport hauteur/largeur à 1:1. Voir https://developers.facebook.com/docs/messenger-platform/reference/template/generic#attachment
sharable
  • true
  • false
Éléments de réponse de type text. Réglée à true pour activer le bouton de partage natif dans Messenger pour le message modèle. La valeur par défaut est false. Voir https://developers.facebook.com/docs/messenger-platform/reference/template/generic#attachment
webview_height_ratio
  • compact
  • tall
  • full
L'un des éléments suivants :
  • Une carte où la propriété "url" est spécifiée.
  • Une action"type" : "url"
Hauteur de la vue Web qui s'ouvre lorsque l'utilisateur touche le bouton URL ou hauteur de la carte où la propriété "url" est spécifiée. Voir https://developers.facebook.com/docs/messenger-platform/reference/buttons/url#properties
messenger_extensions
  • true
  • false
L'un des éléments suivants :
  • Une carte où la propriété "url" est spécifiée.
  • Une action"type" : "url"
Les extensions Messenger vous permettent d'intégrer étroitement les expériences Messenger et de la vue Web en rendant les fonctionnalités ajoutées accessibles dans cette dernière. Voir https://developers.facebook.com/docs/messenger-platform/reference/messenger-extensions-sdk
fallback_url Une URL valide L'un des éléments suivants :
  • Une carte où la propriété "url" est spécifiée.
  • Une action"type" : "url"
URL à utiliser pour les clients qui ne prennent pas en charge Messenger Extensions. Si cette propriété n'est pas définie, url est utilisée comme propriété de secours. Vous ne pouvez la spécifier que si messenger_extensions a la valeur "true". Voir https://developers.facebook.com/docs/messenger-platform/reference/buttons/url#properties
webview_share_button
  • hide
L'un des éléments suivants :
  • Une carte où la propriété "url" est spécifiée.
  • Une action"type" : "url"
Réglée à hide pour désactiver le bouton de partage dans la vue Web (pour les informations sensibles). Cette propriété n'a aucune incidence sur les partages lancés par le développeur à l'aide des extensions.
share_contents Le format suit celui utilisé dans l'API d'envoi de Facebook Messenger
  • Une action"type" : "share"
Message que le destinataire du partage doit voir, s'il diffère de celui auquel ce bouton est joint. Voir https://developers.facebook.com/docs/messenger-platform/reference/buttons/share#properties

Voici un exemple de propriétés personnalisées définies au niveau de l'élément de réponse (top_element_style) et des cartes (webview_height_ratio et 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"
...

Pour obtenir plus d'informations générales sur channelCustomProperties, voir Extensions propres au canal.