Facebook Messenger

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

  • Une application Facebook

  • Une page 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 l'application Facebook que vous utiliserez pour le canal :
    1. Dans votre navigateur, allez à https://developers.facebook.com/apps/.
    2. Sélectionnez l'onglet Mes applications et cliquez sur Créer une application.
    3. Dans la page Détails de l'application de l'Assistant Créer une application, entrez le nom à utiliser pour l'application et l'adresse de courriel à utiliser comme contact pour l'application. Cliquez ensuite sur Suivant.
    4. Dans la page Cas d'utilisation, sous Filtrer par, sélectionnez Messagerie d'affaires. Sélectionnez ensuite Engager avec les clients sur Messenger à partir de Meta et cliquez sur Suivant.
    5. Cliquez sur le reste des pages de l'assistant, puis, dans la page Aperçu, cliquez sur Créer une application.
  3. Une fois l'application créée, sélectionnez-la (dans la partie gauche de la page Mes applications), puis, dans la section Paramètres de l'application, sélectionnez De base.
  4. Copiez la valeur du champ Clé secrète de l'application et collez-la à un endroit pratique sur votre système.

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

  5. Dans la section Page d'application, cliquez sur Créer une page.
  6. Dans la page Create a Page (Créer une page), remplissez les champs obligatoires, puis cliquez sur Create Page (Créer une page).
    Note

    Le nom de la page doit contenir le nom de l'application.
  7. Générer un jeton d'accès :
    1. Sélectionnez Outils > Explorateur d'API Graph.
    2. Dans la section Jeton d'accès de la page, pour Meta App, sélectionnez le nom de votre application.
    3. Pour le champ Utilisateur ou page, sélectionnez Obtenir le jeton.
    4. Dans la section Autorisations, cliquez sur Ajouter une autorisation et sélectionnez les autorisations suivantes :
      • business_management
      • pages_manage_metadata
      • pages_messaging
      • pages_show_list
    5. Cliquez sur Generate Access Token (Créer un jeton d'accès).
  8. 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.

É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. Choose Facebook Messenger as the channel type.

  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 la console Facebook Messenger, accédez au projet que vous avez initialement créé pour le webhook.
  2. Sélectionnez Paramètres de l'API Messenger pour ouvrir la page Configuration de l'API Messenger.
  3. Dans le champ URL de rappel, collez l'URL du webhook obtenue à partir de la page Canaux de Digital Assistant.
  4. Dans le champ Vérifier le jeton de la console Messenger, collez le jeton de vérification dans la page Canaux de l'assistant numérique.
  5. Dans la section Champs Webhook, sélectionnez les événements de rappel messages et messaging_postbacks.
  6. Cliquez sur Verify and Save (Vérifier et enregistrer).
  7. Abonnez-vous à la page :
    1. Dans la section Générer des jetons d'accès de la page Configuration de l'API Messenger, sélectionnez la page Facebook de votre canal.
    2. Cliquez sur Ajouter un abonnement.
    3. Dans la boîte de dialogue Modifier les abonnements à une page, vérifiez que les champs messages et messaging_postbacks sont sélectionnés, puis cliquez sur Confirmer.

É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

With the Facebook Channel and messaging configuration complete, you can test your bot using your Facebook page, Facebook Messenger (https://www.messenger.com/) and the Facebook Messenger app on your device.

  1. Allez à https://www.messenger.com/.
  2. Dans l'interface Messenger, entrez le nom de la page à rechercher.
  3. Commencez à clavarder avec votre assistant numérique (ou compétence autonome).

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.