API di Telegram Invia Messaggio: sendMessage in curl, Python e Node

Inviare messaggio API Telegram

Telegram API Invia Messaggio: sendMessage e Account Connessi

Una guida basata sul codice per inviare un messaggio su Telegram: le Bot API sendMessage endpoint in curl, Python e Node, il limite strutturale che impedisce a un bot di scrivere per primo a qualcuno e come inviare messaggi da un account Telegram reale connesso con Unipile Avvia chat e sendMessage.



send_message.sh
API del bot #: sendMessage curl -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" \ -d chat_id=123456789 \ -d text="Ciao dalla Bot API" \ -d parse_mode="Markdown"
200 OK: messaggio inviato
Guida alle decisioni

Tre modi per inviare un messaggio Telegram e quale scegliere

Ci sono esattamente tre modi per inviare un messaggio tramite l'API di Telegram. Non sono intercambiabili: ognuno invia il messaggio come un diverso tipo di mittente, con vincoli differenti su chi può riceverlo.
API Bot sendMessage
Una singola chiamata HTTP, autenticata con un token bot di BotFather. Il modo più rapido per inviare notifiche, avvisi e risposte. Il risvolto: un bot può inviare messaggi solo agli utenti che hanno già avviato una conversazione con esso.
Ideale per bot e notifiche
Client MTProto (Telegram API)
Accesso completo al protocollo tramite api_id e api_hash, utilizzato per creare il tuo client Telegram da zero (Telethon, Pyrogram, TDLib). L'opzione più pesante da implementare e mantenere.
Il migliore per la creazione di un client personalizzato
Account utente connessoUnipile
Invia come un vero account Telegram, collegato tramite la funzione Dispositivi di Telegram (codice QR o autenticazione ospitata). Nessuna restrizione "scrivimi prima" e funziona anche per gruppi e conversazioni esistenti.
Ideale per la messaggistica in uscita su larga scala
Ottenere un token per bot o un api_id / api_hash la coppia è un argomento separato. Per quella guida passo-passo, vedi la nostra guida completa a ottenere l'accesso all'API di Telegram. Questa guida copre solo l'invio del messaggio una volta ottenute le credenziali.


Crea la tua integrazione con Telegram
Tutorial di codice

Invia un messaggio con l'endpoint sendMessage dell'API Bot

L'API Bot espone un unico endpoint HTTP per l'invio di un messaggio: POST https://api.telegram.org/bot/sendMessage. A partire dalla Bot API 10.2 (14 luglio 2026), i parametri richiesti sono invariati: a chat_id e un text corpo.
ParametroTipoDescrizione
chat_id RichiestoIntero o StringaIdentificatore univoco della chat di destinazione, o @username per un canale pubblico.
text RichiestoStringaTesto del messaggio, da 1 a 4096 caratteri dopo l'analisi delle entità.
modalità_analisi OpzionaleStringaMarkdownV2, HTML o legacy Markdown, per applicare la formattazione in grassetto, ai link e al codice.
disabilita_notifica OpzionaleBooleanoInvia il messaggio in silenzio, senza un suono di notifica push.
parametri_di_risposta OpzionaleOggettoInvia il messaggio come risposta a un messaggio esistente nella chat.



ricciolo
curl -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \ -H "Content-Type: application/json" \ -d '{ "chat_id": 123456789, ""text": "Il tuo ordine #4821 è stato spedito.", "parse_mode": "MarkdownV2" }'



send_message.py
import richieste TOKEN = "123456:ABC-your-bot-token" url = f"https://api.telegram.org/bot{TOKEN}/sendMessage" carico utile = { "chat_id": 123456789, "testo": ""Il tuo ordine #4821 è stato spedito."", "parse_mode": "MarkdownV2" } response = richieste.posta(url, json=payload) print(risposta.json())



inviaMessaggio.js
const TOKEN = "123456:ABC-your-bot-token"; const url = `https://api.telegram.org/bot${TOKEN}/sendMessage`; const response = await fetch(url, { method: "POST", intestazioni: { "Content-Type": "application/json" }, body: JSON.stringify({ chat_id: 123456789, text: ""Il tuo ordine #4821 è stato spedito."", modalità di analisi: "MarkdownV2" }) }); const dati = await risposta.json(); console.log(dati);
Il Punto Bascule

Perché i bot non possono inviare il primo messaggio e cosa significa questo per te

Ogni chiamata a sendMessage qui sopra funziona, fino a quando non cerchi di contattare qualcuno che non ha mai interagito con il tuo bot. È allora che l'API dei bot incontra un muro che nessun parametro, nuovo tentativo o soluzione alternativa riesce a superare.
Un bot non può scrivere a un utente che non gli ha scritto prima
Questa è una regola strutturale della Bot API, non un limite di frequenza o un bug. Fino a quando un utente non invia /avviare (o qualsiasi messaggio) al tuo bot, sendMessage a quello chat_id fallisce completamente. Questo va bene per i bot di supporto e i bot di notifica opt-in in cui l'utente si fa vivo per primo. Si rompe del tutto per i casi d'uso in uscita: campagne di vendita, messaggi di recupero account, ping transazionali a un contatto che non ha mai aperto il tuo bot.
Il client MTProto non ha questa limitazione: un client API Telegram completo può inviare messaggi a qualsiasi utente, nello stesso modo in cui fa l'app di Telegram.
Un account utente connesso non ce l'ha nemmeno, perché il messaggio viene inviato da un vero account Telegram, non da un bot. Questo è l'approccio trattato nella sezione successiva.


Crea il flusso dell'account connesso
Account collegato

Invia da un account Telegram reale con Unipile

Unipile collega un vero Telegram account utente, non un bot. Il collegamento avviene tramite la funzione Dispositivi di Telegram, tramite la scansione di un codice QR o l'Autenticazione Ospitata con fornitori: "TELEGRAM". Poiché il messaggio proviene da un account reale, non c'è alcuna restrizione "scrivimi prima" riservata ai bot da aggirare. Vedi il API di Telegram pagina del prodotto per l'elenco completo degli endpoint.
1
Avviare una nuova conversazione con startChat
Quando il destinatario non ha alcuna chat esistente con l'account collegato, chiama POST /chat con ID utente e text. Telegram consente una sola conversazione individuale per coppia di utenti, quindi se esiste già una chat, questa stessa chiamata consegna semplicemente il messaggio al suo interno invece di crearne una duplicata.



start_chat.py
import richieste url = ""https://api6.unipile.com/v2/${accountId}/chats/send"" intestazioni = {"X-API-KEY": api_key} dati = { "account_id": id_account, "ID utente": [telegram_user_id], "testo": "Ciao, in merito alla tua richiesta." } response = richieste.posta(url, headers=headers, data=data) chat = risposta.json() print(chat["chat_id"]) ID del destinatario # per le chat 1:1
2
Invia in una chat esistente con sendMessage
C'era una volta chat_id esiste, chiama POST /chats/{chat_id}/messaggi con solo il text body. Questa è la chiamata da utilizzare per ogni messaggio di follow-up in una conversazione in corso.



send_message.js
const ID chat = "CHAT_ID_FROM_STARTCHAT"; const modulo = new FormData(); modulo.aggiungi("testo", "Il tuo aggiornamento è pronto per essere revisionato."); const response = await fetch( `https://api6.unipile.com/v2/${accountId}/chats/${chatId}/messages/send`, { method: "POST", intestazioni: { "X-API-KEY": apiKey }, corpo: forma } ); const inviato = await risposta.json(); console.log(sent.message_id);
Entrambe le chiamate accettano multipart/form-data, non JSON. Per le chat 1:1, il chat_id restituito da Avvia chat è l'ID del destinatario stesso: una volta noto l'identificativo Telegram di un utente, è possibile riutilizzarlo direttamente per sendMessage senza un passaggio di ricerca.


Inizia a costruire con Unipile
Gruppi

Invia un messaggio all'interno di un gruppo Telegram

L'invio in un gruppo funziona allo stesso modo dell'invio in una chat esistente: POST /chats/{chat_id}/messaggi con il gruppo chat_id e un text corpo. Ciò che cambia è la gestione dei partecipanti, che utilizza i propri endpoint.
FunzionamentoPunto finaleAppunti
GET Elenco dei partecipanti/v2/{account_id}/chats/{chat_id}/participantsRestituisce l'elenco dei membri attuali del gruppo.
POSTA Aggiungi partecipante/v2/{account_id}/chats/{chat_id}/participantsRichiede che l'autorizzazione "Aggiungi altri membri" sia abilitata nel gruppo.
CANCELLARE Rimuovi partecipante/v2/{account_id}/chats/{chat_id}/participantsL'account collegato deve essere un amministratore del gruppo.
Controlla i permessi prima di fare affidamento sul codice di risposta. Se il gruppo non concede "Aggiungi altri membri" o l'account collegato non è un amministratore, l'API può comunque restituire una risposta di successo senza aggiungere o rimuovere effettivamente nessuno. Verifica sempre l'elenco dei partecipanti dopo la chiamata, non fidarti solo del codice di stato.
Cosa non è supportato per Telegram in Unipile
Canali, community e trasmissioni
Azioni dell'amministratore del gruppo: approvazione o promozione dei membri
Allegati di contatto, posizione, sondaggio ed evento
Archiviazione della chat
Chiamate vocali e video
Consegnabilità

Migliori pratiche per evitare le restrizioni su Telegram

Un account collegato si comporta come un vero utente di Telegram, il che significa che è soggetto anche gli stessi standard antispam insieme. Le linee guida ufficiali di Unipile sono dirette: troppe conversazioni avviate senza risposta, o troppi segnali di spam e blocco, possono portare a una restrizione temporanea dell'account.
Rispettare il ritardo
Non inviare mai meno di 10-20 secondi di distanza tra i messaggi. Varia l'intervallo, non procedere a orari fissi.
Riscaldare i nuovi account
Evita di inviare grandi volumi su account collegati di recente. Inizia con volumi bassi e aumenta gradualmente man mano che i tassi di risposta confermano che l'account è affidabile.
Guarda i tassi di risposta
Un'alta percentuale di conversazioni che non ricevono risposta è uno dei segnali più forti che Telegram utilizza per segnalare un account.
Preferisco il contatto diretto e caloroso
Le conversazioni che si basano su una relazione esistente o su un riferimento generano meno blocchi rispetto ai primi messaggi completamente a freddo.
Questa è una decisione del cliente
Unipile inoltra i messaggi che invii, non stabilisce il tuo ritmo al posto tuo. Il volume di invio, la tempistica e il ritmo sono decisi da voi, in base alla cronologia dell'account e alla tolleranza di Telegram in un dato momento. Integrare ritardi realistici fin dal primo giorno è la pratica più efficace in assoluto.


Crea con limiti di invio sicuri
Costruisci con Unipile

Pronto a inviare messaggi Telegram da account reali collegati?

Un'unica API per startChat e sendMessage su Telegram, WhatsApp, LinkedIn, Instagram, Gmail, Outlook e IMAP, oltre a Google Calendar e Outlook Calendar. Collega un account e invia il tuo primo messaggio in pochi minuti.

Telegram API Invia Messaggio - FAQ

Domande frequenti sull'invio di messaggi Telegram con l'API Bot e con account collegati.

Effettua una richiesta POST all'https://api.telegram.org/bot/sendMessage, specificando i parametri `chat_id` e `text`. Il token viene fornito da BotFather. L'API Bot è gratuita e la versione attuale è la 10.2, pubblicata il 14 luglio 2026..

Telegram richiede che l'utente apra la conversazione con il bot prima che il bot possa inviare qualsiasi cosa. Non esiste alcun endpoint che permetta a un bot di iniziare una chat con un utente arbitrario. Se il vostro prodotto ha bisogno di iniziare il contatto, un bot è lo strumento sbagliato e vi serve un account utente reale.

startChat apre una nuova conversazione e invia il primo messaggio in un'unica chiamata. sendMessage pubblica in una conversazione già esistente. Telegram consente una sola chat individuale per utente, quindi chiamare startChat con qualcuno con cui hai già una chat si limita a pubblicare in quella chat esistente.

Con la Bot API, aggiungi il bot al gruppo e usa il chat_id del gruppo. Da un account connesso, invia al chat_id del gruppo come qualsiasi altra chat. Unipile espone anche l'elenco dei partecipanti, l'aggiunta e la rimozione nei gruppi, ma non supporta canali, community o trasmissioni.

Telegram supporta MarkdownV2 e HTML. MarkdownV2 richiede l'escape di un lungo elenco di caratteri riservati, quindi l'HTML è solitamente la scelta più sicura quando il testo del messaggio viene generato dinamicamente.

Non usare un account nuovo di zecca esclusivamente per l'automazione, aumenta il volume gradualmente e non inviare mai più di un messaggio ogni 10 o 20 secondi. Telegram vieta permanentemente per flooding, spam e gonfiaggio dei contatori, e avviare molte conversazioni che rimangono senza risposta è un forte segnale di spam.

Avete ancora domande? Il nostro team è qui per aiutarvi.

Parlare con un esperto
it_ITIT