DE

Telegram-Bot-API vs. Telegram-API: Welche davon brauchen Sie?

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.

can-i-message-first.js
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.
KriterienTelegram Bot APITelegram-Benutzer-API (MTProto)
Was es verbindetEin von deiner App erstelltes und verwaltetes Bot-KontoEin echtes Telegram-Benutzerkonto, verknüpft mit einer Telefonnummer
ProtokollStandard-HTTP-, JSON-Anfragen und -AntwortenMTProto, ein von Ihnen implementiertes benutzerdefiniertes binäres Protokoll
BerechtigungsnachweiseEin Bot-Token, ausgestellt von @BotFatherapi_id + API-Hash from my.telegram.org
Identität in ChatsZeigt ein sichtbares "Bot"-Badge, das sich von einer Person unterscheidetNicht von einer Person zu unterscheiden, die die App nutzt
Wer wem schreiben kannDer Bot kann erst antworten, nachdem ein Nutzer den Chat begonnen hat.Das Konto kann jedem schreiben, wie jeder Telegram-Benutzer
Typische ImplementierungJeder HTTP-Client, offizielle und Community-SDKsTelethon, Pyrogram, GramJS, TDLib oder ein verknüpftes Konto über Unipile
KostenKostenlos zu verwendenKostenlos 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 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ähigkeitBot-APITelegram-Benutzer-API (raw)Unipile
Starte einen Chat mit einem Nutzer, der noch nie zuerst geschrieben hatNeinJa, vorbehaltlich der Datenschutzeinstellungen des BenutzersJa, dieselbe Regel wie bei jedem Telegram-Konto
Textnachrichten senden und empfangenJa, in Chats, an denen der Bot beteiligt istJaJa
Nachrichtenverlauf von vor dem Beitritt des Bots lesenNeinJaJa
Gruppenteilnehmerliste, hinzufügen, entfernenBeschränkt auf die eigenen Berechtigungen des BotsJa, wenn du es baustJa, getParticipantsList, addParticipant, removeParticipant
Gruppenverwaltung: genehmigen, befördern, entziehenJa, nur wenn der Bot ein Administrator istJa, wenn du es baustNicht unterstützt
Kanäle, Communities, StreamsJa, wenn als Administrator hinzugefügtJaNicht unterstützt
Geheime ChatsNicht anwendbarJa, wenn du es baustNicht unterstützt
Kontakt, Standort, Umfrage, Ereignis-AnhängeJaJaNicht unterstützt
Sprach- und VideoanrufeNeinMöglich, hoher ImplementierungsaufwandNicht unterstützt
Chat-Design, Archivierung, Chat-LöschungNicht anwendbarJa, wenn du es baustNicht unterstützt
KontodatenGetrennte Bot-Identität, sichtbares BadgeEchte Nutzeridentität, an eine Telefonnummer gebundenReale Nutzeridentität, Ihr bestehendes Konto
Sitzungs- und GeräteverwaltungToken-basiert, kein GerätekonzeptSie verwalten den MTProto-Authentifizierungsschlüssel und 2FA selbstVerwaltet ü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.
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.

shared-api-id-in-open-source.log
// 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.
Überspringe die Protokollarbeit
Nichts davon ist erforderlich, um ein echtes Telegram-Konto zu verbinden
Unipile kümmert sich um die MTProto-Sitzung, den Anmeldeablauf und den Lebenszyklus der Anmeldedaten für Sie. Sie erhalten ein echtes, menschliches Telegram-Konto, das mit Ihrem Produkt verbunden ist, ohne einen Client von Grund auf neu schreiben zu müssen.
Fang stattdessen an zu bauen
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 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.
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 getrennt. Der Sitzungslebenszyklus ist sichtbar und vorhersehbar, keine Blackbox, die Sie allein debuggen müssen.

connect-telegram-account.js
// 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.
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

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.
Sprechen Sie mit einem Experten