Inhaltsübersicht
Die beiden Modelle
Fähigkeiten & Kosten
Entscheiden & bauen
Fragen
Telegram Bot API vs. Telegram API
Telegram-Bot-API vs. Telegram-API: Welche davon brauchen Sie?
Die Telegram Bot API und die Telegramm-API (auch Telegram User API genannt, basierend auf MTProto) lösen unterschiedliche Probleme. Die eine betreibt ein Bot-Konto über HTTP. Die andere betreibt ein echtes Benutzerkonto über ein binäres Protokoll, das Sie selbst implementieren. Dieser Leitfaden schlüsselt Endpoint für Endpoint auf, wo Sie jeweils eingeschränkt werden, und was es tatsächlich kostet, einen Telegram User API-Client zu entwickeln und zu warten, im Vergleich zur Anbindung eines bestehenden Kontos über Unipile.
Bot-API: Blockiert, der Nutzer hat dem Bot nie eine Nachricht gesendet
const res = await Bot.sendMessage(NutzerId, "Hallo");
// -> 403 Forbidden: Bot wurde vom Benutzer blockiert
// oder nie ein Gespräch begonnen hat
Telegram-Benutzer-API über Unipile: funktioniert, es ist ein echtes Konto
// POST /v2/:account_id/chats/send
const Chat = await unipile.Chats.create({
Konto_id: Telegram-Konto-ID,
Benutzer-IDs: [Benutzername],
text: "Hallo"
});chat.status: "gesendet"
Die beiden Modelle
Telegram Bot API vs. Telegram User API in einer Tabelle
Wenn Sie bereits wissen, dass Telegram mehrere APIs hat, und nur wissen möchten, welche auf Ihr Projekt zutrifft, bringt Sie diese Tabelle in zehn Sekunden dorthin. Wenn Sie immer noch das Gesamtbild aller drei Telegram-APIs benötigen, lesen Sie die Erste-Schritte-Anleitung Erstens. Hier gehen wir eine Ebene tiefer bei den beiden, gegen die die Leute tatsächlich programmieren: der Bot-API und der Telegram-User-API.
| Kriterien | Telegram Bot API | Telegram-Benutzer-API (MTProto) |
|---|---|---|
| Was es verbindet | Ein von deiner App erstelltes und verwaltetes Bot-Konto | Ein echtes Telegram-Benutzerkonto, verknüpft mit einer Telefonnummer |
| Protokoll | Standard-HTTP-, JSON-Anfragen und -Antworten | MTProto, ein von Ihnen implementiertes benutzerdefiniertes binäres Protokoll |
| Berechtigungsnachweise | Ein Bot-Token, ausgestellt von @BotFather | api_id + API-Hash from my.telegram.org |
| Identität in Chats | Zeigt ein sichtbares "Bot"-Badge, das sich von einer Person unterscheidet | Nicht von einer Person zu unterscheiden, die die App nutzt |
| Wer wem schreiben kann | Der Bot kann erst antworten, nachdem ein Nutzer den Chat begonnen hat. | Das Konto kann jedem schreiben, wie jeder Telegram-Benutzer |
| Typische Implementierung | Jeder HTTP-Client, offizielle und Community-SDKs | Telethon, Pyrogram, GramJS, TDLib oder ein verknüpftes Konto über Unipile |
| Kosten | Kostenlos zu verwenden | Kostenlos nutzbar, nur Kosten für selbst gehostete Infrastruktur |
Telegram Bot API
VerbindetEin Bot-Account
ProtokollHTTP, JSON
BerechtigungsnachweiseBot-Token (BotFather)
IdentitätSichtbares Bot-Badge
Wer es benachrichtigen kannNur Benutzer, die zuerst geschrieben haben
KostenKostenlos
Telegram-Benutzer-API (MTProto)
VerbindetEin echtes Benutzerkonto
ProtokollMTProto, binär
Berechtigungsnachweiseapi_id + api_hash
IdentitätVon einer Person nicht zu unterscheiden
Wer es benachrichtigen kannJeder, wie ein ganz normaler Benutzer
KostenKostenlos, selbst gehostet, nur Kosten
Die Frage, die entscheidet
Wem möchten Sie zuerst schreiben?
Jeder andere Unterschied zwischen der Telegram-Bot-API und der Telegram-User-API ist diesem gegenüber zweitrangig. Beantworte das zuerst, und der Rest dieses Leitfadens wird zu einer Checkliste, nicht zu einer Entscheidung.
Ein Bot kann kein Gespräch mit einem Nutzer beginnen, der ihm noch nie zuvor eine Nachricht gesendet hat.
Das ist eine Telegram-Plattformregel, keine Unipile-Einschränkung oder ein Bibliotheksfehler. Ein Bot-Konto kann nur innerhalb eines Chats antworten, den der Nutzer bereits geöffnet hat, oder nachdem der Nutzer auf ein
Das ist eine Telegram-Plattformregel, keine Unipile-Einschränkung oder ein Bibliotheksfehler. Ein Bot-Konto kann nur innerhalb eines Chats antworten, den der Nutzer bereits geöffnet hat, oder nachdem der Nutzer auf ein
t.me Deep-Link oder tritt einer Gruppe bei, in der sich der Bot befindet. Wenn Ihr Anwendungsfall erfordert, jemanden zu kontaktieren, der noch nicht mit Ihrem Bot interagiert hat, ist die Bot-API keine Option, unabhängig davon, welches Framework oder welche Bibliothek darauf aufsetzt. Bot-API funktioniert
Der Benutzer spricht zuerst mit Ihrem Bot
Support-Bots, befehlsschematische Tools, Benachrichtigungs-Opt-ins, Chatbots, die mit Ihrem Produkt verknüpft sind. Der Nutzer findet Ihren Bot, startet den Chat, und alles ab diesem Zeitpunkt ist ein normaler Austausch, den die Bot-API gut handhabt. Bot-API blockiert
Sie müssen den ersten Schritt machen
Sales-Outreach, Recruiting, Kundenkommunikation, die mit einer bestehenden Kontaktliste verknüpft ist, oder jeder Workflow, bei dem Ihr Produkt den Kontakt zu einem Telegram-Nutzer initiiert. Dies erfordert ein echtes Nutzerkonto, was bedeutet, dass die Telegram-Nutzer-API (MTProto) und nicht die Bot-API verwendet werden muss.Fähigkeitsmatrix
Was tatsächlich funktioniert, Endpunkt für Endpunkt
Abgesehen von dem Hauptunterschied ist dies der Bereich, in dem Sie die jeweilige Option in der Praxis einschränkt: "Telegram User API (raw)" bedeutet einen selbst gebauten MTProto-Client mit einer Bibliothek wie Telethon, Pyrogram, GramJS oder TDLib. "Unipile" bedeutet dasselbe echte Benutzerkonto, verbunden, ohne selbst MTProto-Code schreiben zu müssen.
| Fähigkeit | Bot-API | Telegram-Benutzer-API (raw) | Unipile |
|---|---|---|---|
| Starte einen Chat mit einem Nutzer, der noch nie zuerst geschrieben hat | Nein | Ja, vorbehaltlich der Datenschutzeinstellungen des Benutzers | Ja, dieselbe Regel wie bei jedem Telegram-Konto |
| Textnachrichten senden und empfangen | Ja, in Chats, an denen der Bot beteiligt ist | Ja | Ja |
| Nachrichtenverlauf von vor dem Beitritt des Bots lesen | Nein | Ja | Ja |
| Gruppenteilnehmerliste, hinzufügen, entfernen | Beschränkt auf die eigenen Berechtigungen des Bots | Ja, wenn du es baust | Ja, getParticipantsList, addParticipant, removeParticipant |
| Gruppenverwaltung: genehmigen, befördern, entziehen | Ja, nur wenn der Bot ein Administrator ist | Ja, wenn du es baust | Nicht unterstützt |
| Kanäle, Communities, Streams | Ja, wenn als Administrator hinzugefügt | Ja | Nicht unterstützt |
| Geheime Chats | Nicht anwendbar | Ja, wenn du es baust | Nicht unterstützt |
| Kontakt, Standort, Umfrage, Ereignis-Anhänge | Ja | Ja | Nicht unterstützt |
| Sprach- und Videoanrufe | Nein | Möglich, hoher Implementierungsaufwand | Nicht unterstützt |
| Chat-Design, Archivierung, Chat-Löschung | Nicht anwendbar | Ja, wenn du es baust | Nicht unterstützt |
| Kontodaten | Getrennte Bot-Identität, sichtbares Badge | Echte Nutzeridentität, an eine Telefonnummer gebunden | Reale Nutzeridentität, Ihr bestehendes Konto |
| Sitzungs- und Geräteverwaltung | Token-basiert, kein Gerätekonzept | Sie verwalten den MTProto-Authentifizierungsschlüssel und 2FA selbst | Verwaltet über die Telegram-eigene Funktion „Geräte“ |
Ein Gespräch beginnen
Bot-APINein
Benutzer-API (roh)Ja, datenschutzabhängig
UnipileJa
Chatverlauf vor dem Beitritt
Bot-APINein
Benutzer-API (roh)Ja
UnipileJa
Gruppenteilnehmer (abrufen / hinzufügen / entfernen)
Bot-APIBeschränkt auf Bot-Berechtigungen
Benutzer-API (roh)Ja, selbst gebaut
UnipileJa, dedizierte Endpunkte
Gruppenverwaltung
Bot-APIJa, wenn Admin-Bot
Benutzer-API (roh)Ja, selbst gebaut
UnipileNicht unterstützt
Kanäle, Communities, Streams
Bot-APIJa, als Administrator
Benutzer-API (roh)Ja
UnipileNicht unterstützt
Geheime Chats
Bot-APINicht anwendbar
Benutzer-API (roh)Ja, selbst gebaut
UnipileNicht unterstützt
Kontakt-, Standort-, Umfrage- oder Event-Anhänge
Bot-APIJa
Benutzer-API (roh)Ja
UnipileNicht unterstützt
Sprach- und Videoanrufe
Bot-APINein
Benutzer-API (roh)Möglich, hoher Aufwand
UnipileNicht unterstützt
Sitzungs- / Geräteverwaltung
Bot-APIToken-basiert
Benutzer-API (roh)Selbstverwalteter Authentifizierungsschlüssel + 2FA
UnipileTelegram-eigene Geräte-Funktion
Was Unipile auf Telegram nicht abdeckt
Kanäle, Communities und Broadcasts, Chat-Design, geheime Chats, Kontakte, Standorte, Umfragen- und Event-Anhänge, Gruppenverwaltung (Genehmigen, Befördern, Widerrufen), Chat-Löschung, Archivierung sowie Sprach- oder Videoanrufe. Wenn Ihr Projekt eines davon benötigt, deckt nur ein selbst gebauter Telegram-User-API-Client den gesamten Funktionsumfang ab.
Kanäle, Communities und Broadcasts, Chat-Design, geheime Chats, Kontakte, Standorte, Umfragen- und Event-Anhänge, Gruppenverwaltung (Genehmigen, Befördern, Widerrufen), Chat-Löschung, Archivierung sowie Sprach- oder Videoanrufe. Wenn Ihr Projekt eines davon benötigt, deckt nur ein selbst gebauter Telegram-User-API-Client den gesamten Funktionsumfang ab.
Die wahren Kosten
Die wahren Kosten der Entwicklung auf MTProto
Die Telegram User API ist zwar kostenlos, aber "kostenlos" deckt nur die Lizenz ab. Das Erstellen und Warten eines eigenen Telegram User API-Clients ist mit echten Entwicklungskosten verbunden, die eine Bot-API-Integration niemals hat. So sehen diese Kosten tatsächlich aus.
01
Sitzungs- und Auth-Key-Verwaltung
MTProto ist ein binäres Protokoll, kein REST. Man implementiert das TL-Schema, den Auth-Key-Austausch und persistiert die resultierende Sitzung selbst. Verliert man die Sitzung, muss sich der Nutzer von Grund auf neu authentifizieren. 02
Zwei-Faktor-Authentifizierung
Konten mit einem Cloud-Passwort erfordern die Handhabung des SRP-basierten 2FA-Ablaufs von Telegram während der Anmeldung. Es ist eine weitere Zustandsmaschine, die erstellt, getestet und bei jedem Telegram-Protokollupdate funktionsfähig gehalten werden muss. 03
Eine api_id pro Telefonnummer
api_id und API-Hash werden ausgestellt am my.telegram.org unter "API-Entwicklungstools" und erfordern ein aktives Telegram-Konto. Telegram erlaubt ein einzelnes api_id über die Rufnummer, was die Art und Weise prägt, wie Sie Test- und Produktionsanmeldeinformationen bereitstellen. 04
Konten unter automatischer Beobachtung
Inoffizielle Clients werden von Telegram unter automatische Beobachtung gestellt. Flood, Spam und das künstliche Aufblähen von Zählern können eine dauerhafte Sperre auslösen, was bedeutet, dass Rate-Limiting und Warm-up in Ihrer Verantwortung liegen und nicht als Standard in der Bibliothek implementiert sind.// Kopieren einer Beispiel-api-ID aus einem Open-Source-Repository
// anstatt Ihre eigene auf my.telegram.org zu registrieren
Fehler: API_ID_PUBLISHED_FLOOD
// Telegram markiert api_id-Werte, die in öffentlichem Code veröffentlicht wurden.
Jede Anwendung, die Sie ausliefern, benötigt eine eigene api_id / einen eigenen api_hash,
// Eine pro Telefonnummer, sonst erhalten Ihre Endbenutzer diesen Fehler.Der dritte Weg
Ein bestehendes Konto verknüpfen, den MTProto-Build überspringen
Die meisten Teams wollen eigentlich keinen Telegram-Client entwickeln. Sie wollen die Funktionen eines echten Benutzerkontos: Konversationen starten, den vollständigen Verlauf lesen, Teilnehmer von Gruppen verwalten, ohne eine Binärprotokoll-Implementierung besitzen zu müssen. Genau das ist der Zweck von Unipiles Telegramm-API ist für.
Verbindung über die Telegram-eigene Funktion „Geräte“ herstellen
Unipile verbindet ein bestehendes Telegram-Benutzerkonto über die Gerätedefinition von Telegram, denselben Mechanismus, mit dem Sie sich bei Telegram Desktop oder Telegram Web anmelden. Die Anmeldung erfolgt über einen QR-Code oder über Hosted Auth mit
Unipile verbindet ein bestehendes Telegram-Benutzerkonto über die Gerätedefinition von Telegram, denselben Mechanismus, mit dem Sie sich bei Telegram Desktop oder Telegram Web anmelden. Die Anmeldung erfolgt über einen QR-Code oder über Hosted Auth mit
Anbieter: "TELEGRAM" für einen integrierten Verbindungsprozess. Keine api_id, kein api_hash, kein MTProto zu schreiben
Sie wickeln den Auth-Key-Austausch, das TL-Schema oder 2FA niemals selbst ab. Das verknüpfte Konto verhält sich wie ein echter Telegram-Benutzer, weil es einer ist, kein Bot und kein simulierter Client.
Sie wickeln den Auth-Key-Austausch, das TL-Schema oder 2FA niemals selbst ab. Das verknüpfte Konto verhält sich wie ein echter Telegram-Benutzer, weil es einer ist, kein Bot und kein simulierter Client.
Gruppenteilnehmer über dedizierte Endpunkte
TeilnehmerlisteAbrufen, Teilnehmer hinzufügen, Teilnehmer entfernen, freigegeben über POST, GETund DELETE /v2/{account_id}/chats/{chat_id}/participants. Keine benutzerdefinierten MTProto-Aufrufe für die grundlegende Mitgliederverwaltung zu schreiben. Sitzungsstatus an die Geräteliste von Telegram gekoppelt
Wenn das Unipile-Gerät aus den aktiven Sitzungen des Kontos innerhalb von Telegram entfernt wird, wechselt der Kontostatus zu
Wenn das Unipile-Gerät aus den aktiven Sitzungen des Kontos innerhalb von Telegram entfernt wird, wechselt der Kontostatus zu
getrennt. Der Sitzungslebenszyklus ist sichtbar und vorhersehbar, keine Blackbox, die Sie allein debuggen müssen. // Bestehendes Telegram-Benutzerkonto verknüpfen
// Über Hosted Auth, kein MTProto-Code erforderlich
const Verknüpfung = await unipile.Gehostete Authentifizierung.create({
Anbieter: ["TELEGRAMM"],
gültigBis: "2026-12-31T23:59:59.000Z"
});
// Der Benutzer scannt den QR-Code mit der Telegram-App
// Kontostatus wird zu "verbunden"
// GET /v2/{account_id}/chats/{chat_id}/participants
const Mitglieder = await unipile.Chats.TeilnehmerlisteAbrufen(Chat-ID);account.status: "verbunden"
Dieselbst Regeln, keine Ausnahmen
Ein verknüpftes Konto ist nach wie vor ein Telegram-Konto und unterliegt den eigenen Limits von Telegram: Vermeiden Sie brandneue Konten für die intensive Nutzung, steigern Sie das Volumen schrittweise und halten Sie mindestens 10 bis 20 Sekunden Pause zwischen den Nachrichten ein. Siehe die Telegram-API-Handbuch und die Nachricht senden Anleitung für die komplette Einrichtung.
Ein verknüpftes Konto ist nach wie vor ein Telegram-Konto und unterliegt den eigenen Limits von Telegram: Vermeiden Sie brandneue Konten für die intensive Nutzung, steigern Sie das Volumen schrittweise und halten Sie mindestens 10 bis 20 Sekunden Pause zwischen den Nachrichten ein. Siehe die Telegram-API-Handbuch und die Nachricht senden Anleitung für die komplette Einrichtung.
Entscheidungsbaum
Was für Ihren Fall das Richtige ist
Drei Fragen, der Reihe nach. Halten Sie bei der ersten an, die zu Ihrem Projekt passt.
1
Schreibt der Nutzer Ihnen immer zuerst, und muss der Bot nur auf Befehle und Nachrichten antworten?
->Support-Bots, Opt-in-Benachrichtigungen, Befehlswerkzeuge, bei denen der Nutzer den Kontakt initiiert.Bot-API
2
Müssen Sie zuerst Kontakt aufnehmen und benötigen Sie außerdem Kanäle, geheime Chats, Gruppenverwaltung oder Anrufe?
->Vollständige Plattformabdeckung, und Sie sind bereit, mit Telethon, Pyrogram, GramJS oder TDLib einen eigenen MTProto-Client zu bauen und zu warten.Telegram-User-API, selbst gebaut
3
Musst du zuerst den Kontakt suchen, wie ein echtes Konto agieren und loslegen, ohne MTProto zu besitzen?
->Messaging, Chat-Verlauf und Gruppen-Teilnehmerverwaltung auf einem verbundenen Benutzerkonto, wobei die Sitzung für Sie verwaltet wird.Unipile
Die meisten Teams landen hier
Einen echten Telegram-Account verbinden, ohne einen Client zu bauen
Wenn Ihr Projekt von sich aus Kontakte knüpfen muss, aber keine Kanäle, geheimen Chats oder Anrufe benötigt, ermöglicht Ihnen ein verknüpftes Konto über Unipile genau das, ohne dass Sie eine Telegram-User-API-Implementierung warten müssen.
Bauen Sie es mit Unipile Einen echten Telegram-Account verbinden, ohne einen Client zu bauen
Wenn Ihr Projekt von sich aus Kontakte knüpfen muss, aber keine Kanäle, geheimen Chats oder Anrufe benötigt, ermöglicht Ihnen ein verknüpftes Konto über Unipile genau das, ohne dass Sie eine Telegram-User-API-Implementierung warten müssen.
Telegram Bot API vs. Telegram API – FAQ
Häufige Fragen zur Auswahl zwischen der Telegram Bot API und der Telegram User API (MTProto).
Die Bot-API ist eine HTTP-Schnittstelle, die ein Bot-Konto steuert und eine bewusst begrenzte Oberfläche bereitstellt. Die Telegram-API, auch Client-API genannt, spricht das binäre MTProto-Protokoll und steuert ein echtes Benutzerkonto mit dem vollen Funktionsumfang. Es handelt sich um unterschiedliche Kontotypen, nicht um zwei Versionen derselben Sache.
Fragen Sie, wem Sie schreiben müssen. Wenn Ihre Benutzer Ihnen zuerst schreiben und eine Bot-Identität akzeptabel ist, verwenden Sie die Bot-API. Wenn Sie Personen erreichen müssen, die Sie nicht kontaktiert haben, oder als echte Person agieren möchten, benötigen Sie Zugriff auf ein Benutzerkonto.
Nein. Der Nutzer muss das Gespräch zuerst beginnen. Dies ist die einzige Einschränkung, die die meisten Produkte von der Bot-API fernhält, und kein Endpunkt umgeht dies.
Nein. Die Bot-API benötigt nur das Bot-Token, das Ihnen BotFather gibt. api_id und api_hash stammen von my.telegram.org und sind für die Client-API bestimmt, wobei eine api_id pro Telefonnummer zulässig ist.
Hart genug, dass es fast niemand von Grund auf neu schreibt. Man kümmert sich um Session-Persistenz, Zwei-Faktor-Authentifizierung, Wiederverbindung und ein binäres Protokoll. Die meisten Teams nutzen Telethon, Pyrogram, GramJS oder TDLib und verwalten dennoch den Session-Lebenszyklus selbst.
Es ist ein anderer Name für die Client-API, die MTProto-Schnittstelle, die sich als echter Telegram-Benutzer anstelle eines Bots authentifiziert.
Ja. Die Verknüpfung eines bestehenden Kontos über die Telegram-Funktion „Geräte“ gewährt Zugriff auf das Benutzerkonto, ohne MTProto zu implementieren. Auf diese Weise verknüpft Unipile Telegram-Konten über einen QR-Code-Login oder einen gehosteten Authentifizierungsablauf.
Haben Sie noch Fragen? Unser Team ist für Sie da.