Extensions de discussion


Les extensions de discussion permettent aux bots de créer des fonctionnalités interactives et sociales que les utilisateurs peuvent directement invoquer dans leurs conversations.
TABLE DES MATIÈRES
  1. Présentation
  2. Configuration du point d’entrée du tiroir
  3. Partage
  4. Obtention de l’ID utilisateur et du contexte de la discussion
  5. Gestion des autorisations
  6. Conseils et recommandations
  7. Questions/réponses et dépannage

Présentation

Modèle d’interaction

Les extensions de discussion apparaissent dans le tiroir de l’éditeur dans Messenger une fois que l’utilisateur a interagi avec le bot associé.

Lorsque l’utilisateur appuie sur l’icône d’extension de discussion, une webview s’ouvre selon l’IU indiquée par le développeur. L’utilisateur peut alors créer ou sélectionner du contenu à partager dans la discussion. Le message partagé dans la discussion peut contenir des images, des liens, etc.

Lorsque des utilisateurs dans le groupe interagissent avec des messages partagés de cette façon, le développeur peut accéder aux informations sur le contexte dans la discussion, demander des autorisations et toute autre fonction fournie dans le SDK JavaScript des extensions de Messenger.

Cas d’utilisation potentiels

  • Expression : créer des stickers ou des memes directement dans Messenger. Partager des musiques, des vidéos ou d’autres contenus.
  • Média : envoyer au groupe des actualités sur des sujets que vous suivez en temps réel.
  • Commerce : commander et planifier en groupe.
  • Productivité : envoyer des mises à jour des suiveurs de tâches, modifier de manière collaborative un document.
  • Divertissement : créer des jeux ou des défis de groupe.

Exemple de projet

Nous avons mis sous licence libre TaskBot, un bot présentant toutes les fonctions décrites ici.


Essayer dans Messenger →Repo Github →

Configuration du point d’entrée du tiroir

Pour permettre à votre bot d’apparaître dans le tiroir des personnes l’ayant ajouté, vous devez configurer son URL d’accueil.

Si votre extension de discussion n’est pas prête à être lancée, assurez-vous de configurer in_test sur true pour éviter sa diffusion au public avant qu’elle ne soit prête.

En savoir plus →

Partage

La plate-forme Messenger prend en charge le partage personnalisé depuis webview, permettant aux développeurs de fournir une destination et un message personnalisés pour les messages partagés depuis leur bot.

Plusieurs améliorations ont été ajoutées à ces fonctions afin d’assurer leur compatibilité avec les extensions de discussion. Ce que vous devez savoir :

Partage dans la discussion actuelle

La fonction beginShareFlow() dispose du paramètre mode qui prend maintenant en charge le mode current_thread. Cela permet à l’utilisateur de partager la discussion depuis laquelle il a invoqué l’extension de discussion, au lieu de devoir sélectionner une autre discussion. La plupart des développeurs doivent choisir le mode current_thread pour l’intérieur de l’extension.

Dans certains cas, vous souhaiterez peut-être vérifier si ce mode est pris en charge par la version Messenger de l’utilisateur. Utilisez la méthode getSupportedFeatures() et vérifiez la clé "sharing_direct" pour vous en assurer.

Réaction aux partages

Le rappel success pour beginShareFlow() est appelé, que l’utilisateur confirme le partage ou l’annule, tant qu’aucune erreur n’est rencontrée.

Messenger transfère désormais le champ is_sent en réponse au rappel success en vous indiquant si un message a été envoyé ou non.

Une fois le message partagé par l’utilisateur, il convient de fermer la fenêtre si vous avez terminé, ou de diriger l’utilisateur vers la prochaine partie du flux.

<script> 
    var messageToShare = { ... };
      
    MessengerExtensions.beginShareFlow(function success(response) {
      if(response.is_sent === true){ 
      	// User shared. We're done here!
      	MessengerExtensions.requestCloseBrowser();
      }
      else{
      	// User canceled their share! 
      
      }
    }, 
    function error(errorCode, errorMessage) {      
  	// An error occurred trying to share!
    },
    messageToShare,
    "current_thread");   
</script>

Consultez la documentation relative à beginShareFlow() pour en savoir plus.

En savoir plus →

Obtention de l’ID utilisateur et du contexte de la discussion

Appelez la fonction getContext() pour obtenir :

  • l’ID utilisateur (PSID) ;
  • l’ID de la discussion ;
  • le type de la discussion.

Cette fonction est disponible pour tous les utilisateurs dans la webview, qu’ils aient ouvert une discussion avec votre bot ou non.

Veuillez noter qu’obtenir l’ID utilisateur avec cette méthode ne veut pas dire que vous pourrez obtenir le profil de l’utilisateur. Pour ce faire, vous aurez besoin de l’autorisation du profil.


En savoir plus →

Gestion des autorisations

Lorsqu’un utilisateur commence une discussion avec votre bot, vous disposez automatiquement de l’autorisation d’envoyer un message à cet utilisateur et d’obtenir son profil. Ces autorisations sont retirées pour les utilisateurs qui bloquent le bot ou suppriment la discussion.

Pour les utilisateurs ayant accédé à votre bot grâce à la webview et n’ayant pas commencé une discussion, vous pouvez leur demander ces autorisations. Pour ce faire, vous pouvez utiliser les fonctions d’autorisation dans le SDK JavaScript des extensions Messenger.

En savoir plus →

Conseils et recommandations

La plate-forme Messenger a proposé des recommandations pour savoir comment créer une excellente extension de discussion :

  • Approche générale
  • Comment utiliser plusieurs modes de partage
  • Comment contrôler la webview Chrome pour optimiser l’effet
  • Comment assurer la rétrocompatibilité
En savoir plus →

Kit de conception

Prêt(e) à concevoir votre extension de discussion ? Consultez notre fichier croquis utile, contenant tous les composants dont vous avez besoin !

Obtenir le kit →

Questions/réponses et dépannage

Q : Dois-je avoir un bot pour pouvoir développer une extension de discussion ?

R : Oui ! Les extensions de discussion sont des extensions de bots.

Q : Comment afficher une extension de discussion dans le tiroir de l’éditeur ?

R : Une extension de discussion apparaît dans le tiroir de l’éditeur pour un utilisateur lorsqu’il a interagi avec son bot associé.

Q : Dois-je avoir une extension de discussion pour permettre aux utilisateurs de partager depuis mon bot ?

R : Non ! La plate-forme Messenger propose différentes autres manières pour permettre aux utilisateurs de partager depuis votre bot.

Q : Dois-je avoir une extension de discussion pour utiliser la webview et le SDK JavaScript des extensions Messenger dans mon bot ? Quelle connexion est utilisée ?

R : Non ! Nous adorons ce mot. En réalité, les webviews peuvent être invoquées de nombreuses façons au-delà des extensions de discussion, et toutes autorisent l’utilisation d’extensions Messenger.

Q : Lorsqu’un destinataire d’une extension de discussion appuie sur un lien, quelles fonctionnalités sont disponibles par l’intermédiaire du SDK JavaScript des extensions Messenger ?

R : Toutes les fonctionnalités qui étaient disponibles pour l’expéditeur sont disponibles pour les utilisateurs qui ouvrent le contenu partagé. Vous pouvez obtenir l’ID utilisateur et le contexte de la discussion, initier vos propres partages, etc. Veuillez noter que dans ces situations, vous n’aurez pas accès au profil des utilisateurs ou ne pourrez pas envoyer de message aux utilisateurs tant que vous n’aurez pas demandé l’autorisation nécessaire.

Q : Les extensions de discussion fonctionnent-elles sur Messenger.com et Facebook.com ?

R : Cette fonctionnalité est uniquement prise en charge sur iOS et Android. Il est possible que les utilisateurs sur des clients web puissent cliquer sur les liens partagés par les utilisateurs d’extensions de discussion, mais ils ne pourront pas utiliser la fonctionnalité fournie par le SDK JavaScript. Pour en savoir plus, consultez « Rétrocompatibilité » dans le guide de recommandations concernant les extensions de discussion.

Q : Quelle est la différence entre le partage sur une discussion actuelle ou le partage avec diffusion ?

R : Les extensions de discussion conçues dans les fonctions de partage webview ont été lancées plus tôt en ajoutant un flux appelé "current_thread".

Si un utilisateur a invoqué votre bot dans une discussion avec l’éditeur, il semble logique qu’il souhaite le partager dedans, plutôt qu’avec une autre personne. Avec le flux « current_thread », l’utilisateur peut confirmer l’envoi d’un élément de contenu à la discussion actuelle, plutôt que de le diffuser dans plusieurs discussions.

Q : Je dispose de la dernière version de Messenger et le SDK ne fonctionne pas sur la webview. Quel est le problème ?

R : Vérifiez les points suivants :

  • Page non publiée : si la page à laquelle votre bot est lié n’est pas publique, le SDK ne se charge pas pour les utilisateurs qui n’ont pas de rôle (par ex., développeur, administrateur) sur votre page. Ajoutez l’utilisateur à la page ou publiez la page.

  • Propriété messenger_extension non configurée : Assurez-vous que chaque point d’ouverture de webview est configuré sur messenger_extensions ou true. Par exemple :


Q : J’ai créé une extension de discussion, mais je ne parviens pas à faire en sorte qu’elle s’affiche dans le tiroir de l’éditeur. Comment y remédier ?

Vérifiez les points suivants :

  1. Vérifiez que vous avez défini le home_url de la page spécifique sur laquelle vous voulez qu’elle apparaisse, en employant le token d’accès de Page de cette page. Le transfert d’un bot d’une Page Facebook à une autre ne transférera pas l’URL d’accueil.

  2. Si vous avez défini l’attribut in_test sur « true » en mode de développement, vérifiez que la personne qui consulte le tiroir est un développeur ou un testeur du bot en question, ou un gestionnaire de sa Page Facebook. Si vous avez publié le bot publiquement, vérifiez que vous l’avez envoyé et qu’il a été approuvé pour l’autorisation pages_messaging.

  3. Vérifiez que la Page Facebook à laquelle le bot est rattaché est publiée.

  4. Vérifiez que le bot lui-même est en mode public.

  5. Vérifiez que vous avez déjà discuté avec le bot.

  6. Les extensions de discussion affichées dans le tiroir de l’éditeur sont mises en cache. Vous devrez peut-être patienter quelques minutes pour qu’elles s’affichent.