Votre bot Telegram est une chaîne de caractères, et trois règles déterminent ce qu'il peut faire.
BotFather renvoie un jeton en une minute environ. Ce qui bloque la plupart des premiers bots, ce n'est pas le code qui suit : c'est le mode confidentialité dans les groupes, un message par seconde dans un chat, et environ trente par seconde en masse. Ces trois limites sont publiées.
Michael ChenDeux expressions de recherche se côtoient dès qu'on cherche ce sujet : le jeton, et l'identifiant de chat. Ce duo résume tout le problème du débutant. On obtient le premier en une minute, puis on découvre que le bot n'a nulle part où parler.
Ce n'est donc pas une comparaison de frameworks. C'est ce qu'est le jeton, ce qui bloque le bot une fois que vous l'avez, et les trois limites publiées qui déterminent la forme de tout ce que vous construisez.
Ce que BotFather vous donne réellement
Ouvrez une conversation avec le bot de Telegram destiné à créer des bots, envoyez /newbot, répondez à deux questions. La documentation de Telegram décrit exactement l'échange : il demande un nom et un nom d'utilisateur, puis génère un jeton d'authentification.
Ce jeton, c'est le bot. C'est une chaîne avec un préfixe numérique et un long secret après les deux-points, et Telegram le décrit en ces termes : il autorise le bot et est requis pour envoyer des requêtes à l'API. Il n'y a pas de mot de passe séparé, pas de compte auquel se connecter, pas de second identifiant. Quiconque détient la chaîne contrôle entièrement le bot, c'est pourquoi elle doit vivre dans une variable d'environnement et jamais dans un dépôt, une capture d'écran ou une conversation de groupe.
À ce moment-là, vous avez un bot fonctionnel qui ne fait rien, parce que personne n'écoute. C'est l'état normal, et c'est là que le vrai travail commence.
Règle un : dans un groupe, votre bot est volontairement sourd
C'est le signalement « mon bot ne marche pas » le plus courant, et c'est un comportement documenté, pas un bug. Telegram précise que par défaut, tous les bots ajoutés à des groupes fonctionnent en mode confidentialité et ne voient que les messages et commandes pertinents.
Un bot présent dans un groupe ne reçoit donc pas les conversations ordinaires. Il reçoit les messages qui s'adressent à lui et les commandes, et c'est voulu. Si vous construisez un bot de modération qui doit tout lire, vous modifiez ce réglage via BotFather délibérément. Si vous construisez un assistant qui répond aux questions, laissez-le tel quel : le réglage par défaut protège la vie privée et vous épargne aussi un volume énorme de mises à jour inutiles.
Une règle connexe qui piège ceux qui créent des flux bot-à-bot : Telegram a décidé que les bots ne verront pas les messages d'autres bots, quel que soit le mode, précisément pour éviter qu'ils ne tournent en boucle. Deux de vos propres bots ne peuvent pas se parler directement.
Règle deux : un message par seconde, par conversation
La consigne de Telegram est directe. Dans une seule conversation, évitez d'envoyer plus d'un message par seconde. C'est formulé comme un conseil plutôt qu'une limite stricte, ce qui en pratique signifie que la limite est appliquée en faisant attendre votre bot plutôt qu'en refusant catégoriquement.
La conséquence de conception mérite d'être intégrée tôt : un bot qui répond à une question en six petits messages est six fois plus lent pour cet utilisateur qu'un bot qui répond en un seul message, et ça se ressent. Composez une seule réponse plutôt que de narrer.
Règle trois : trente par seconde, en masse, et l'arithmétique qui s'ensuit
Pour les notifications en masse, Telegram précise que les bots ne peuvent pas diffuser plus d'environ trente messages par seconde.
Faites l'arithmétique avant de concevoir une fonction de diffusion, car elle est impitoyable. Dix mille abonnés à trente par seconde, c'est un peu plus de cinq minutes et demie d'envoi continu, en supposant que rien n'échoue et que rien ne soit relancé. Cent mille, c'est près d'une heure. Tout bot dont le but est d'annoncer quelque chose à une grande liste est en réalité une file d'attente avec un bot au bout, et le construire comme une simple boucle produira une diffusion qui se poursuivra bien après que la nouvelle soit périmée.
Les réponses pratiques sont les habituelles : envoyez vers un canal et laissez les abonnés tirer l'information, plutôt que de pousser vers chaque utilisateur individuellement ; ou acceptez la file d'attente et affichez la progression. Choisissez délibérément, dès le départ.
Une première version volontairement minimaliste
Telegram demande à tous les développeurs de prendre en charge un petit ensemble de commandes de base, et place /start en tête de liste comme celle qui initie l'interaction avec un utilisateur. Il demande aussi de répondre à tous les messages envoyés à votre bot. Entre ces deux lignes, vous avez une spécification pour une première version.
- Répondez à
/startpar une brève présentation de ce que fait le bot. C'est la première chose que chaque utilisateur voit, et c'est le seul écran sur lequel vous pouvez compter. - Identifiez quelques vraies questions récurrentes, tirées des messages auxquels vous répondez déjà à la main plutôt que d'une liste supposée.
- Ne restez jamais silencieux. Une entrée non reconnue doit recevoir une réponse indiquant qu'un humain prendra le relais, car un bot qui ne dit rien semble cassé, tandis qu'un bot qui dit « je n'ai pas compris, quelqu'un vous répondra » semble fonctionnel.
Une fois cette boucle fiable, tout ce qui suit — publications planifiées, modération de groupe, recherche en base de données — est un ajout plutôt qu'une refonte.
Deux choses que vous ne pouvez pas acheter, et une que vous pouvez
Une note sur ce que cette place de marché propose ou non, puisque c'est la question évidente sur un site comme celui-ci.
Il n'y a pas de bot à acheter. Une recherche du mot dans les 16 735 annonces actives retourne trois résultats, et les trois sont autre chose : un jeu console avec « Bot » dans le nom, une annonce Telegram où un bot est le mécanisme de livraison, et une annonce Facebook où le vendeur cède des droits d'administration via l'un d'eux. Personne ne vend de bots ici, car le jeton est gratuit et prend une minute.
Ce dont vous pourriez avoir besoin, c'est d'un compte Telegram ordinaire pour tester, afin de ne pas ajouter votre numéro personnel à un bot que vous déboguez encore, et d'un numéro pour l'enregistrer. Les deux existent : comptes Telegram et numéros de vérification SMS. La garantie sur l'étagère des comptes est en moyenne de douze heures, alors testez la connexion dès son arrivée plutôt que le week-end.
Une asymétrie à connaître si vous construisez quelque chose destiné au public : la vérification de Telegram s'applique aux canaux, aux bots et aux groupes publics. Votre bot est sur la liste éligible. Le compte depuis lequel vous le gérez ne l'est pas.
La référence à garder ouverte pendant que vous construisez est la documentation de l'API Bot de Telegram. Tout ce qui est cité sur cette page en provient, et c'est la seule source qui reste à jour.
