API Telegram - Envoyer un message : sendMessage et comptes connectés
sendMessage point de terminaison dans curl, Python et Node, la limite structurelle qui empêche un bot d'écrire à quelqu'un en premier, et comment envoyer un message à partir d'un véritable compte Telegram connecté avec Unipile Démarrer le chat et sendMessage.API du bot # : sendMessage
curl -X POST " https://api.telegram.org/bot$TOKEN/sendMessage " \
-d chat_id=123456789 \
-d texte="Bonjour de l'API Bot" \
-d parse_mode="Markdown"Trois façons d'envoyer un message Telegram et laquelle choisir
sendMessageid_api et clé d'API, utilisé pour créer votre propre client Telegram à partir de zéro (Telethon, Pyrogram, TDLib). L'option la plus lourde à mettre en œuvre et à maintenir.id_api / clé d'API pair est un sujet distinct. Pour ce guide étape par étape, consultez notre guide complet sur obtenir l'accès à l'API Telegram. Ce guide couvre uniquement l'envoi du message une fois que vous disposez des identifiants.Créez votre intégration Telegram
Envoyer un message avec l'endpoint sendMessage de l'API Bot
ARTICLE https://api.telegram.org/bot/sendMessage. À compter de l'API Bot 10.2 (14 juillet 2026), les paramètres requis restent inchangés : a chat_id et un text corps.| Paramètre | Type | Description |
|---|---|---|
chat_id Requis | Entier ou Chaîne | Identifiant unique de la discussion cible, ou @username pour une chaîne publique. |
text Requis | Chaîne de caractères | Texte du message, de 1 à 4096 caractères après l'analyse des entités. |
mode_analyse Facultatif | Chaîne de caractères | MarkdownV2, HTML ou existant Markdown, pour rendre le texte en gras, les liens et le formatage du code. |
désactiver_les_notifications Facultatif | Booléen | Envoie le message silencieusement, sans son de notification push. |
paramètres_de_réponse Facultatif | Objet | Envoie le message en tant que réponse à un message existant dans la discussion. |
curl -X POST " https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage " \
-H "Content-Type: application/json" \
-d '{
"chat_id": 123456789,
""text": "Votre commande #4821 a été expédiée.",
"parse_mode": "MarkdownV2"
}'import demandes
Jeton = "123456:ABC-your-bot-token"
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
charge utile = {
"chat_id": 123456789,
"texte": " Votre commande n° #4821 a été expédiée. ",
"mode_analyse": "MarkdownV2"
}
response = requêtes.poste(url, json=payload)
print(réponse.json())const Jeton = "123456:ABC-your-bot-token";
const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
const response = await fetch(url, {
method: "POST",
headers : { "Content-Type": "application/json" },
body: JSON.stringify({
chat_id : 123456789,
text: " Votre commande n° #4821 a été expédiée. ",
mode d'analyse "MarkdownV2"
})
});
const données = await réponse.json();
console.log(données);Pourquoi les robots ne peuvent pas envoyer de message en premier, et ce que cela signifie pour vous
sendMessage à cela chat_id échoue complètement. C'est acceptable pour les bots de support et les bots de notification à opt-in où l'utilisateur initie le contact. Cela pose un problème total pour les cas d'usage sortants : prospection commerciale, messages de récupération de compte, pings transactionnels vers un contact qui n'a jamais ouvert votre bot.Créer le parcours de compte connecté
Envoyer depuis un vrai compte Telegram avec Unipile
fournisseurs : "TELEGRAM". Étant donné que le message provient d'un vrai compte, il n'y a pas de restriction "m'envoyer un message en premier" spécifique aux bots à contourner. Voir la API Telegram page de produits pour la liste complète des points de terminaison.POST /chats avec identifiants_utilisateurs et text. Telegram ne permet qu'une seule conversation individuelle par paire d'utilisateurs, donc si un chat existe déjà, ce même appel livre simplement le message dedans au lieu d'en créer un en double.import demandes
url = " https://api6.unipile.com/v2/${accountId}/chats/send "
en-têtes = {"X-API-KEY": api_key}
données = {
"account_id": identifiant_compte,
"identifiants_utilisateurs": [telegram_user_id],
"texte": "Bonjour, suite à votre demande."
}
response = requêtes.poste(url, headers=headers, data=data)
chat = réponse.json()
print(chat["chat_id"]) Identifiant du destinataire # pour les discussions en tête-à-têtechat_id existe, appel POST /chats/{chat_id}/messages avec juste le text corps. C'est l'appel à utiliser pour chaque message de suivi dans une conversation en cours.const ID de discussion = "CHAT_ID_FROM_STARTCHAT";
const forme = new DonnéesFormulaire();
formulaire.ajouter("texte", "Votre mise à jour est prête à être examinée.");
const response = await fetch(
`https://api6.unipile.com/v2/${accountId}/chats/${chatId}/messages/send`,
{
method: "POST",
headers : { "X-API-KEY": apiKey },
corps : forme
}
);
const envoyé = await réponse.json();
console.log(sent.message_id);chat_id renvoyé par Démarrer le chat est l'identifiant propre du destinataire : une fois que vous connaissez l'identifiant Telegram d'un utilisateur, vous pouvez le réutiliser directement pour sendMessage sans étape de recherche.Commencez à construire avec Unipile
Envoyer un message dans un groupe Telegram
POST /chats/{chat_id}/messages avec le groupe chat_id et un text corps. Ce qui change, c'est la gestion des participants, qui utilise ses propres points de terminaison.| Opération | Point de terminaison | Notes |
|---|---|---|
| GET Liste des participants | /v2/{account_id}/chats/{chat_id}/participants | Renvoie la liste actuelle des membres du groupe. |
| POST Ajouter un participant | /v2/{account_id}/chats/{chat_id}/participants | Nécessite que l'autorisation "Ajouter d'autres membres" soit activée sur le groupe. |
| DELETE Retirer le participant | /v2/{account_id}/chats/{chat_id}/participants | Le compte associé doit être un administrateur du groupe. |
Bonnes pratiques pour éviter les restrictions sur Telegram
Créer en respectant les limites d'envoi sécurisées
Prêt à envoyer des messages Telegram à partir de vrais comptes liés ?
API Telegram Envoyer un message - FAQ
Questions fréquentes sur l'envoi de messages Telegram avec l'API Bot et avec des comptes liés.
Appelez la méthode POST https://api.telegram.org/bot/sendMessage en transmettant un paramètre « chat_id » et un paramètre « text ». Le jeton est fourni par BotFather. L'API Bot est gratuite ; sa version actuelle est la 10.2, publiée le 14 juillet 2026..
Telegram exige que l'utilisateur ouvre la conversation avec le bot avant que celui-ci ne puisse envoyer quoi que ce soit. Il n'y a pas de point de terminaison permettant à un bot de démarrer une discussion avec un utilisateur arbitraire. Si votre produit doit initier le contact, un bot est le mauvais outil et vous avez besoin d'un vrai compte utilisateur.
startChat ouvre une nouvelle conversation et envoie le premier message en un seul appel. sendMessage publie dans une conversation qui existe déjà. Telegram ne permet qu'une seule discussion individuelle par utilisateur, donc appeler startChat avec quelqu'un avec qui vous avez déjà une discussion publie simplement dans cette discussion existante.
Avec l'API Bot, ajoutez le bot au groupe et utilisez le chat_id du groupe. Depuis un compte connecté, envoyez au chat id du groupe comme n'importe quel autre chat. Unipile expose également la liste des participants, ainsi que l'ajout et la suppression sur les groupes, mais ne prend pas en charge les canaux, les communautés ou les diffusions.
Telegram prend en charge MarkdownV2 et HTML. MarkdownV2 nécessite d'échapper une longue liste de caractères réservés, le HTML est donc généralement le choix le plus sûr lorsque le texte du message est généré dynamiquement.
N'utilisez pas un compte flambant neuf uniquement pour l'automatisation, augmentez le volume progressivement et n'envoyez jamais plus d'un message toutes les 10 à 20 secondes. Telegram bannit définitivement pour cause de inondation, de spam et de regonflage de compteurs, et l'engagement de nombreuses conversations qui restent sans réponse constitue un signal fort de spam.
Vous avez encore des questions ? Notre équipe est là pour vous aider.