Aller au contenu principal
Logo Telegram, messagerie instantanéeTelegramÉdition française
Bot TelegramTelegram Équipe officielleLecture : 6 min

Comment utiliser l'API Telegram Bot pour automatiser l'envoi de messages ?

Découvrez comment utiliser l'API Telegram Bot pour automatiser l'envoi de messages en Python ou curl. Guide complet avec exemples, gestion des erreurs et bonnes pratiques.

Comment configurer un bot Telegram, Automatiser l'envoi de messages Telegram, Bot Telegram Python, API Telegram Bot, Configuration bot Telegram pour automatisation, Pourquoi mon bot Telegram ne fonctionne pas, Envoyer des messages automatiques Telegram, Programmer un bot Telegram, Bot Telegram à heure fixe, Étapes pour créer un bot Telegram

Introduction à l’API Telegram Bot

L’API Telegram Bot permet à tout développeur d’automatiser l’envoi de messages dans Telegram, que ce soit pour des notifications, des rappels, des alertes ou des interactions avec les utilisateurs. Contrairement aux clients classiques, un bot peut fonctionner 24 h/24 sans intervention humaine, répondre à des commandes, envoyer des messages programmés et même gérer des conversations complexes. Cet article vous guide de la création d’un bot jusqu’à l’envoi automatisé de messages, en passant par la personnalisation du contenu, la gestion des limites et les bonnes pratiques de sécurité. Nous utilisons comme exemple la dernière version de l’API disponible au moment de la rédaction (vérifiez votre version via https://api.telegram.org/bot<TOKEN>/getMe).

Introduction à l’API Telegram Bot
Introduction à l’API Telegram Bot

1. Création d’un bot et obtention du token

Étape 1 : Dialogue avec @BotFather

Pour créer un bot Telegram, ouvrez Telegram et recherchez @BotFather (le bot officiel de gestion des bots). Envoyez la commande /newbot et suivez les instructions : choisissez un nom d’affichage (ex. « Mon Bot de Notifications ») puis un nom d’utilisateur unique se terminant par bot (ex. MonBotNotifications_bot). Une fois validé, BotFather vous renvoie un token (ex. 1234567890:ABCdefGHIJklmNOPqrSTUvwxYZ). Ce token est la clé d’authentification de votre bot ; conservez-le en lieu sûr.

Étape 2 : Vérification du token

Avant d’aller plus loin, testez votre token avec une requête simple :

curl https://api.telegram.org/bot<TOKEN>/getMe

La réponse doit contenir {"ok":true,"result":{"id":...}}. Si vous obtenez une erreur 401, vérifiez que le token est correct et qu’il n’y a pas d’espaces.

2. Envoi d’un message simple avec l’API

Méthode sendMessage

Maintenant que votre bot est créé et vérifié, passons à l’envoi de votre premier message. La méthode de base est sendMessage. Elle nécessite les paramètres chat_id (identifiant du destinataire : utilisateur, groupe ou canal) et text (le contenu du message). L’URL est :

https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=CHAT_ID&text=Bonjour%20monde

Pour obtenir le chat_id d’un utilisateur, vous pouvez envoyer un message à votre bot depuis un client Telegram, puis interroger getUpdates :

curl https://api.telegram.org/bot<TOKEN>/getUpdates

La réponse contient la liste des mises à jour ; cherchez le champ message.chat.id. Pour un groupe ou un canal, l’ID est souvent négatif (ex. -1001234567890).

Exemple avec Python (bibliothèque requests)

import requests

TOKEN = "votre_token"
CHAT_ID = "123456789"
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
payload = {
    "chat_id": CHAT_ID,
    "text": "Bonjour depuis un bot Python !"
}
response = requests.post(url, data=payload)
print(response.json())

Ce script envoie un message texte simple. La réponse contient le message envoyé avec son identifiant. Si le message est trop long (plus de 4096 caractères), Telegram le tronque ; il faut alors découper le texte en plusieurs messages.

3. Personnalisation du message : formatage et enrichissement

Au-delà du texte brut, Telegram permet d’enrichir vos messages avec du formatage et des boutons interactifs, ce qui améliore l’expérience utilisateur.

Mode de parsing (parse_mode)

Le paramètre parse_mode permet d’utiliser le formatage HTML ou Markdown dans le texte. Valeurs possibles : HTML ou MarkdownV2. Exemple avec HTML :

payload = {
    "chat_id": CHAT_ID,
    "text": "Gras Italique Lien",
    "parse_mode": "HTML"
}

Avec MarkdownV2, les caractères spéciaux comme _ ou * doivent être échappés avec un antislash. Attention : si le texte contient des erreurs de syntaxe, l’API renvoie une erreur 400.

Boutons inline et autres fonctionnalités

L’API prend en charge les boutons inline via le paramètre reply_markup. Exemple avec un bouton qui ouvre un URL :

payload = {
    "chat_id": CHAT_ID,
    "text": "Cliquez ci-dessous :",
    "reply_markup": {
        "inline_keyboard": [
            [{"text": "Visiter notre site", "url": "https://example.com"}]
        ]
    }
}

On peut aussi envoyer des photos, vidéos, documents, sondages, etc. Chaque type de média a sa propre méthode (sendPhoto, sendDocument, etc.).

4. Automatisation : programmation et déclencheurs

Pour que votre bot soit utile, il doit pouvoir envoyer des messages sans intervention manuelle. Deux approches sont possibles : l’envoi programmé et la réponse automatique aux commandes.

Envoi programmé avec cron ou task scheduler

Pour envoyer des messages automatiquement à intervalles réguliers, vous pouvez utiliser un script Python (ou autre langage) couplé à un planificateur de tâches. Sous Linux, une tâche cron peut exécuter toutes les heures un script qui envoie un message :

0 * * * * /usr/bin/python3 /home/user/send_notification.py

Sous Windows, utilisez le Planificateur de tâches. L’important est que le script soit exécuté avec les bonnes permissions et que le token soit protégé.

Réponse automatique aux commandes

Un bot peut réagir aux commandes comme /start ou /aide. Pour cela, il faut interroger régulièrement l’API (polling) ou configurer un webhook. Voici une boucle simple avec Python et la bibliothèque python-telegram-bot (ou en utilisant directement les requêtes) :

import requests
import time

TOKEN = "..."
offset = 0
while True:
    updates = requests.get(f"https://api.telegram.org/bot{TOKEN}/getUpdates", params={"offset": offset}).json()
    for update in updates.get("result", []):
        offset = update["update_id"] + 1
        if "message" in update:
            chat_id = update["message"]["chat"]["id"]
            text = update["message"].get("text", "")
            if text == "/start":
                requests.post(f"https://api.telegram.org/bot{TOKEN}/sendMessage", data={"chat_id": chat_id, "text": "Bienvenue !"})
    time.sleep(1)

5. Webhooks : une alternative au polling

Le polling, bien que simple, n’est pas efficace pour les bots à fort trafic. Une alternative plus performante est le webhook.

5. Webhooks : une alternative au polling
5. Webhooks : une alternative au polling

Configurer un webhook

Pour éviter de requêter constamment l’API, vous pouvez configurer un webhook : Telegram enverra automatiquement les mises à jour à une URL de votre serveur, via HTTPS obligatoirement. La commande :

curl -F "url=https://votreserveur.com/webhook" https://api.telegram.org/bot<TOKEN>/setWebhook

Votre serveur doit accepter les requêtes POST sur cette URL et répondre rapidement (timeout de 30 secondes maximum). Si vous utilisez un certificat auto-signé, vous pouvez fournir le certificat avec le paramètre certificate.

Limitations et recommandations

Un seul webhook peut être actif par bot. Si vous changez d’URL, désactivez d’abord l’ancien avec deleteWebhook. Le webhook est plus performant pour les bots qui reçoivent beaucoup de messages, mais nécessite un serveur accessible publiquement. Pour un développement local, le polling est plus simple.

6. Gestion des erreurs et limites de l’API

Comme toute API, Telegram impose des limites et peut renvoyer des erreurs. Il est essentiel de les gérer correctement pour assurer la robustesse de votre bot.

Rate limiting

Telegram impose des limites de débit : environ 30 messages par seconde par chat, et un maximum de 20 messages par minute pour les messages envoyés à des groupes. En cas de dépassement, l’API retourne une erreur 429 Too Many Requests. Il faut alors implémenter un backoff exponentiel :

import time

while True:
    response = requests.post(url, data=payload)
    if response.status_code == 429:
        retry_after = response.json().get('parameters', {}).get('retry_after', 5)
        time.sleep(retry_after)
    else:
        break

Erreurs courantes

CodeSignificationAction
400Requête invalide (ex. chat_id manquant)Vérifiez les paramètres
403Bot bloqué par l’utilisateurIgnorez ce chat
404Chat non trouvéVérifiez l’ID
429Trop de requêtesAttendez et réessayez

7. Sécurité et bonnes pratiques

Au-delà des aspects techniques, la sécurité de votre bot est primordiale pour éviter tout usage malveillant.

Protection du token

Le token permet de contrôler totalement votre bot. Ne le partagez jamais, ne le commitez pas dans un dépôt public. Utilisez des variables d’environnement (BOT_TOKEN) et limitez les permissions de votre script.

Validation des entrées

Si votre bot accepte des commandes ou des messages, validez toujours le contenu. Évitez d’exécuter du code basé sur des entrées non filtrées. Utilisez des whitelists pour les commandes autorisées.

Limiter les interactions

Si votre bot envoie des messages à des utilisateurs, assurez-vous qu’ils ont donné leur consentement. Telegram interdit le spam ; un bot qui envoie des messages non sollicités peut être banni.

8. Scénarios d’usage et arbitrages

Quand automatiser avec l’API Telegram Bot ?

Ce choix est pertinent pour :

  • Notifications de déploiement (CI/CD) vers une équipe.
  • Alertes de monitoring (ex. serveur down, seuil dépassé).
  • Rappels quotidiens (météo, tâches, rendez-vous).
  • Interactions simples avec des utilisateurs (bot FAQ, réservation).

Ces cas illustrent la polyvalence de l’API. Pour des interactions complexes, il peut être préférable d’utiliser des frameworks dédiés comme python-telegram-bot, qui simplifient la gestion des webhooks et des commandes. En résumé, l’API Telegram Bot offre un moyen simple et puissant d’automatiser des communications. En suivant ces bonnes pratiques, vous pouvez créer des bots fiables et sécurisés. N’oubliez pas de consulter la documentation officielle pour les mises à jour de l’API.

Mots-clés :Bot TelegramAPI TelegramAutomatisationConfigurationEnvoi automatiqueProgrammation Python