web-dev-qa-db-fra.com

Bot API de messagerie Facebook: "Bulle de frappe"

J'ai créé un bot de messagerie, et certaines actions que je réalise peuvent prendre un certain temps. Donc, afin de faire patienter l'utilisateur, j'aimerais afficher la "bulle d'indicateur" (celle que vous voyez lorsque les personnes avec lesquelles vous vous entretenez tapent):

Bulle de frappe

 Enter image description here

La documentation de l'API Messenger ne définit pas comment le faire, mais il semble possible qu'ils l'effectuent lorsque vous appuyez sur "callBack" sur leur carte.

Comment puis-je simuler cela?

16
Henri Chabrand

Il est maintenant disponible dans l'API du bot messenger via l'action Sender. Vous pouvez trouver la documentation ici .

C'est juste une publication avec une valeur on ou off pour afficher/masquer l'indicateur de bulle.

{
    "recipient":{
          "id":"USER_ID"
    },
    "sender_action":"typing_on" // typing_off
}
17
Spope

Je sais que c’est un hack, mais j’envoie actuellement «l’indicateur de bulle de frappe» sous forme de gif animé comme première réponse, si je prévois un temps d’attente (comme un appel API). Du côté de l'utilisateur, vous ne pouvez pas faire la différence.

0
bal simpson

L'API de messagerie officielle ne supporte pas cette fonctionnalité pour l'instant. Même si @hiponcho - l'un des chatbot présenté par Facebook l'utilise réellement.

Une solution de contournement consisterait à utiliser l'API de messagerie non officielle, qui utilise une méthode appelée sendTypingIndicator qui fait exactement ce que vous voulez. Mais attention, vous pouvez être banni pour l’utilisation d’une API non officielle.

api.sendTypingIndicator(threadID, [callback])

0
Valia

Oui, c'est le seul moyen. 

Lorsque vous avez le modèle de bouton et que quelqu'un clique sur "bouton" pour "postback" ( documentation dans la section "modèle de bouton").

Ensuite, lors de l’analyse du message et de l’envoi de la réponse, cela s’affiche comme une "écriture".

0
fritak