web-dev-qa-db-fra.com

Bots de télégramme: comment supprimer une commande avec botFather

J'essaie d'effacer toutes les commandes de mon bot en utilisant botFather. Je n'ai pas pu trouver de documents pour cela. Il existe une option pour envoyer une nouvelle liste de commandes au BotFather, mais cela ne m'aide pas car mon bot n'a pas de commandes car je travaille avec le clavier personnalisé.

Une idée de comment faire ça?

13
Guy

Ajoutez simplement une nouvelle liste de commandes avec/setcommands.

votre ancienne liste sera écrasée.

16
user3008256

Il n'y a pas de fonctionnalité directe comme "Supprimer la commande". Vous avez juste à remplacer les commandes à nouveau. C'est comme ça. Supposons que vous ayez défini les commandes comme ci-dessous

  • / love - L'amour est éternel
  • / partenaire - partenaire de retour
  • / status - retourne le statut de la relation

Disons que vous devez supprimer la commande / status de votre bot. Vous devez d'abord aller à @ BotFather obtenir votre liste de bots en utilisant / mybots sélectionnez votre bot, puis sélectionnez Edit bot next Modifier les commandes. Maintenant, vous serez invité à ajouter un nouvel ensemble de commandes. Donnez ensuite la liste des commandes sans celle que vous devez supprimer. Comme ci-dessous

amour - L'amour est éternel
partenaire - partenaire de retour

Alors BotFather ajoutera un nouveau jeu de commandes à votre nouveau bot. Ne vous inquiétez pas si vous ne pouvez pas voir votre nouvel ensemble de commandes à la fois. Ils s'ajouteront après environ 10 minutes

4
Menuka Ishan

Je pense que la réponse @ixchi est le compromis maintenant. Il n'est peut-être pas possible d'effacer toutes les commandes de set précédentes dans la convocation Telegram (/something), vous devez donc au moins définir au moins un /start ou une commande/help.

L'émission/limitation des concepts de commandes dans l'API Telegram bot est maintenant considérée comme une liste [~ # ~] globale [~ # ~] , réglé une fois lors de la création du bot :

C'est correct pour une application de chatbot très simple, mais ce n'est pas le meilleur pour un bot qui doit traiter une "machine d'état" complexe avec de nombreux "états" différents.

Ce que j'aimerais à la place, c'est de définir au moment de l'exécution une liste de commandes [~ # ~] contextuelles [~ # ~] .

J'explique avec un exemple: Supposons que la conversation de chatbot ait le statut: shopping_cart_order_processing

Dans ce cas, je voudrais remplir l'interface d'entrée avec une liste relative à cet état:

/add ID de l'article

/remove ID de l'article

/list liste tous les articles dans le panier

/checkout soumettez votre commande!

etc.

Par la suite, lorsque l'utilisateur passe la commande, le changement d'état peut être dans order_sent et la liste des commandes pourrait aussi changer!

Bien sûr, la limitation est simplement une question de facilité d'application de chat d'interface utilisateur (le / bouton/pop-uplist), et le bot peut de toute façon interpréter n'importe quelle déclaration d'utilisateur comme:

/help

help

proposer la liste des commandes contextuelles.

J'espère que mes considérations cette aide.

Quoi qu'il en soit, je voudrais mettre cette "demande de changement" aux gars de Telegram Bot ... mais je ne sais pas comment contacter les bot-guys pour un CR.

Quoi qu'il en soit, l'API Telegram Bot est incroyable et dans un travail en cours maintenant (voir: --- (https://core.telegram.org/bots/api )!

1
Giorgio Robino

BotFather maintient simplement une liste de commandes que vous fournissez.

Vous pouvez faire une nouvelle commande/set avec elle, mais vous ne pouvez pas réellement modifier la fonctionnalité de votre bot à partir de là.

0
ixchi

Comme aujourd'hui, vous pouvez envoyer command/empty pour supprimer toutes les commandes du menu Edit Commands.

0
Prince Paul