Telegram Bot API vs Telegram API: Welke heb je nodig?

Telegram Bot API vs Telegram API

Telegram Bot API vs Telegram API: Welke heb je nodig?

De Telegram Bot API en de Telegram API (ook de Telegram User API genoemd, gebouwd op MTProto) lossen verschillende problemen op. De ene runt een bot-account via HTTP. De andere runt een echt gebruikersaccount via een binair protocol dat je zelf implementeert. Deze handleiding legt per endpoint uit waar je vastloopt, en wat het daadwerkelijk kost om een Telegram User API-client te bouwen en te onderhouden versus het verbinden van een bestaand account via Unipile.

kan-ik-als-eerste-een-bericht-sturen.js
Geblokkeerd, de gebruiker heeft de bot nooit een bericht gestuurd const res = wacht op bot.sendMessage(gebruikersId, "Hoi"); // -> 403 Verboden: bot is geblokkeerd door de gebruiker of nooit een gesprek is begonnen // Telegram User API via Unipile: werkt, het is een echt account // POST /v2/:account_id/chats/send const chat = wacht op eenpaal.chat.create({ account_id: telegramAccountId, gebruiker_ids: [gebruikersnaam], tekst: "Hoi" });
chat.status: "verzonden"
De twee modellen

Telegram Bot API vs Telegram User API, in één tabel

Als je al weet dat Telegram meerdere API's heeft en je wilt gewoon weten welke van toepassing is op jouw project, dan brengt deze tabel je daar in tien seconden. Als je nog steeds het volledige overzicht van alle drie de Telegram-API's nodig hebt, lees dan de starthandleiding Eerst en vooral gaan we een niveau dieper in op de twee waar mensen daadwerkelijk tegenen aan bouwen: de Bot API en de Telegram User API.
CriteriaTelegram Bot APITelegram Gebruikers-API (MTProto)
Wat het verbindtEen botaccount, gemaakt en beheerd door je appEen echt Telegram-gebruikersaccount, gekoppeld aan een telefoonnummer
ProtocolStandaard HTTP, JSON-verzoeken en -antwoordenMTProto, een aangepast binair protocol dat u implementeert
GeloofsbrievenEen bot-token uitgegeven door @BotFatherapi_id + api_hash van my.telegram.org
Identiteit in chatsToont een zichtbare "bot"-badge, onderscheidend van een persoonNiet te onderscheiden van een persoon die de app gebruikt
Wie kan wie berichtenDe bot kan pas reageren nadat een gebruiker de chat is gestartAccount kan iedereen een bericht sturen, net als elke Telegram-gebruiker
Typische implementatieElke HTTP-client, officiële en community SDK'sTelethon, Pyrogram, GramJS, TDLib of een gekoppeld account via Unipile
KostenGratis te gebruikenGratis te gebruiken, alleen kosten voor eigen beheer van de infrastructuur
Telegram Bot API
VerbindtEen botaccount
ProtocolHTTP, JSON
GeloofsbrievenBot-token (BotFather)
IdentiteitZichtbare bot-badge
Wie het kan berichtenAlleen gebruikers die als eerste een bericht hebben gestuurd
KostenGratis
Telegram Gebruikers-API (MTProto)
VerbindtEen echt gebruikersaccount
ProtocolMTProto, binair
Geloofsbrievenapi_id + api_hash
IdentiteitNiet te onderscheiden van een persoon
Wie het kan berichtenIedereen, zoals een normale gebruiker
KostenGratis, in eigen beheer, alleen kosten
De vraag die beslist

Aan wie wil je als eerste schrijven?

Elk ander verschil tussen de Telegram Bot API and de Telegram User API is ondergeschikt aan dit verschil. Beantwoord dit eerst en de rest van deze handleiding wordt een checklist, geen beslissing.
Een bot kan geen gesprek starten met een gebruiker die hem nog nooit een bericht heeft gestuurd
Dit is een Telegram-platformregel, geen Unipile-beperking of bibliotheekbug. Een botaccount kan alleen reageren in een chat die de gebruiker al heeft geopend, of nadat de gebruiker op een t.me een deep link of lid wordt van een groep waarin de bot zich bevindt. Als uw usecase vereist dat u iemand bereikt die nog niet met uw bot heeft geïnteractieerd, is de Bot API geen optie, ongeacht welk framework of welke bibliotheek daarbovenop staat.
Bot-API werkt

De gebruiker praat eerst tegen uw bot

Ondersteuningsbots, op commando gestuurde tools, aanmeldingen voor meldingen, chatbots waarnaar vanuit uw product wordt gelinkt. De gebruiker vindt uw bot, start de chat en alles vanaf dat moment is een normale uitwisseling die de Bot API goed afhandelt.
Bot-API geblokkeerd

Je moet eerst contact opnemen

Verkoopbenadering, werving, klantberichten gekoppeld aan een bestaande contactlijst, of elke workflow waarbij uw product contact legt met een Telegram-gebruiker. Hiervoor is een echt gebruikersaccount vereist, wat betekent de Telegram User API (MTProto), en niet de Bot API.
Vaardighedenmatrix

Wat er daadwerkelijk werkt, endpoint per endpoint

Afgezien van het verschil in de kop, is dit waar elke optie je in de praktijk tegenhoudt. "Telegram User API (raw)" betekent een zelfgebouwde MTProto-client met een bibliotheek zoals Telethon, Pyrogram, GramJS of TDLib. "Unipile" betekent hetzelfde echte gebruikersaccount, verbonden zonder zelf MTProto-code te schrijven.
VermogenBot-APITelegram-gebruikers-API (raw)Eenpaal
Start een gesprek met een gebruiker die nog nooit een bericht heeft gestuurdGeenJa, afhankelijk van de privacy-instellingen van de gebruikerJa, dezelfde regel als elk ander Telegram-account
Tekstberichten verzenden en ontvangenJa, in chats waar de bot deel van uitmaaktJaJa
Berichtgeschiedenis lezen van voordat de bot is toegevoegdGeenJaJa
Groepsdeelnemerslijst, toevoegen, verwijderenBeperkt tot de eigen rechten van de botJa, als je het bouwtJa, getParticipantsList, addParticipant, removeParticipant
Groepsbeheer: goedkeuren, bevorderen, intrekkenJa, alleen als de bot een beheerder isJa, als je het bouwtNiet ondersteund
Kanalen, communities, uitzendingenJa, indien toegevoegd als beheerderJaNiet ondersteund
Geheime chatsNiet van toepassingJa, als je het bouwtNiet ondersteund
Contact, locatie, peiling, evenementbijlagenJaJaNiet ondersteund
Spraak- en videogesprekkenGeenMogelijk, hoge implementatie-inspanningNiet ondersteund
Chatthema, archiveren, chat verwijderenNiet van toepassingJa, als je het bouwtNiet ondersteund
Account-identiteitAparte bot-identiteit, zichtbare badgeEchte gebruikersidentiteit, gekoppeld aan telefoonnummerEchte gebruikersidentiteit, uw bestaande account
Sessie- en apparaatbeheerOp tokens gebaseerd, geen apparaatconceptJe beheert de MTProto-autorisatiesleutel en 2FA zelfBeheerd via de functie Apparaten van Telegram
Start een chat koud
Bot-APIGeen
Gebruikers-API (ruw)Ja, privacygevoelig
EenpaalJa
Berichtgeschiedenis van voor het deelnemen
Bot-APIGeen
Gebruikers-API (ruw)Ja
EenpaalJa
Groepsdeelnemers (ophalen / toevoegen / verwijderen)
Bot-APIBeperkt tot botrechten
Gebruikers-API (ruw)Ja, zelfgebouwd
EenpaalJa, toegewijde eindpunten
Groepsbeheer
Bot-APIJa, als admin bot
Gebruikers-API (ruw)Ja, zelfgebouwd
EenpaalNiet ondersteund
Kanalen, communities, uitzendingen
Bot-APIJa, als beheerder
Gebruikers-API (ruw)Ja
EenpaalNiet ondersteund
Geheime chats
Bot-APINiet van toepassing
Gebruikers-API (ruw)Ja, zelfgebouwd
EenpaalNiet ondersteund
Contact / locatie / peiling / evenement bijlagen
Bot-APIJa
Gebruikers-API (ruw)Ja
EenpaalNiet ondersteund
Spraak- en videogesprekken
Bot-APIGeen
Gebruikers-API (ruw)Mogelijk, grote inspanning
EenpaalNiet ondersteund
Sessie- / apparaatbeheer
Bot-APIOp tokens gebaseerd
Gebruikers-API (ruw)Zelfbeheerde authenticatiesleutel + 2FA
EenpaalDe eigen Apparaten-functie van Telegram
Wat Unipile niet dekt op Telegram
Kanalen, communities en uitzendingen, chatthema, geheime chats, contactpersoon, locatie-, poll- en evenementbijlagen, groepsbeheer (goedkeuren, promoveren, intrekken), chatverwijdering, archivering en spraak- of videogesprekken. Als je project een van deze vereist, dekt alleen een zelfgebouwd Telegram User API-client het volledige oppervlak.
De werkelijke kosten

De werkelijke kosten van het bouwen op MTProto

De Telegram User API is gratis, maar "gratis" dekt alleen de licentie. Het zelf bouwen en onderhouden van een Telegram User API-client brengt reële engineeringkosten met zich mee die een Bot API-integratie nooit heeft. Dit is hoe die kosten er in de praktijk uitzien.
01

Sessie- en auth-sleutelbeheer

MTProto is een binair protocol, geen REST. Je implementeert zelf het TL-schema, de auth key-uitwisseling en slaat de resulterende sessie op. Raak je de sessie kwijt, dan moet de gebruiker zich opnieuw authenticeren vanaf nul.
02

Twee-factorauthenticatie

Accounts met een cloudwachtwoord vereisen het afhandelen van Telegram's op SRP gebaseerde 2FA-proces tijdens het inloggen. Het is nog een toestandsmachine die gebouwd, getest en werkend moet worden gehouden bij elke update van het Telegram-protocol.
03

Eén api_id per telefoonnummer

api_id en api_hash worden uitgegeven op my.telegram.org onder "API-ontwikkelingstools" en vereisen een actief Telegram-account. Telegram staat een enkele api_id per telefoonnummer, wat vorm geeft aan hoe u test- en productiegegevens verstrekt.
04

Accounts onder automatische observatie

Unofficiële clients worden door Telegram onder automatische observatie geplaatst. Flooding, spam en het kunstmatig opblazen van tellers kunnen een permanente ban veroorzaken, wat betekent dat rate-limiting en warm-up jouw verantwoordelijkheid zijn, en niet een standaardinstelling van de bibliotheek.

shared-api-id-in-open-source.log
// Het kopiëren en plakken van een voorbeeld api_id van een open source repository // in plaats van je eigen te registreren op my.telegram.org Fout: API_ID_PUBLISHED_FLOOD // Telegram markeert api_id-waarden die in publieke code zijn gepubliceerd. Elke applicatie die je verzendt heeft zijn eigen api_id / api_hash nodig, // één per telefoonnummer, anders krijgen uw eindgebruikers deze foutmelding.
Sla het protocolwerk over
Niets hiervan is vereist om een echt Telegram-account te koppelen
Unipile beheerd de MTProto-sessie, de inlogflow en de levenscyclus van inloggegevens voor u. U krijgt een echt, menselijk Telegram-account gekoppeld aan uw product zonder dat u helemaal opnieuw een client hoeft te schrijven.
Begin in plaats daarvan met bouwen
De derde weg

Koppel een bestaand account, sla de MTProto-build over

De meeste teams willen eigenlijk geen Telegram-client bouwen. Ze willen de functionaliteiten van een echt gebruikersaccount: gesprekken starten, de volledige geschiedenis lezen, groepsdeelnemers beheren, zonder zelf een implementatie van een binair protocol te hoeven bezitten. Dat is wat Unipile's Telegram API is voor.
Maak verbinding via de functie Apparaten van Telegram
Unipile koppelt een bestaand Telegram-gebruikersaccount via de Apparaten-functie van Telegram, hetzelfde mechanisme waarmee u kunt inloggen op Telegram Desktop of Telegram Web. Inloggen gebeurt via een QR-code of via Hosted Auth met providers: "TELEGRAM" voor een drop-in verbindingsproces.
Geen api_id, geen api_hash, geen MTProto om te schrijven
Je handelt de auth-sleuteluitwisseling, het TL-schema of 2FA nooit zelf af. Het gekoppelde account gedraagt zich als een echte Telegram-gebruiker omdat het er een is, geen bot en geen gesimuleerde client.
Groepsdeelnemers, via toegewijde eindpunten
deelnemerslijstOphalen, deelnemerToevoegen, deelnemerVerwijderen, blootgesteld via POST, GETen VERWIJDEREN /v2/{account_id}/chats/{chat_id}/participants. Geen aangepaste MTProto-aanroepen om te schrijven voor basisbeheer van lidmaatschap.
Sessiestatus gekoppeld aan de lijst met apparaten van Telegram
Als het Unipile-apparaat wordt verwijderd uit de actieve sessies van het account in Telegram, verandert de accountstatus in verbroken. De sessielevenscyclus is zichtbaar en voorspelbaar, geen zwarte doos die je in je eentje debugt.

connect-telegram-account.js
// Verbind een bestaand Telegram-gebruikersaccount // via Hosted Auth, geen MTProto-code vereist const link = wacht op eenpaal.gehosteAuthenticatie.create({ aanbieders ["TELEGRAM"], verlooptOp: "2026-12-31T23:59:59.000Z" }); // De gebruiker scant de QR-code met de Telegram-app // Accountstatus wordt "verbonden" // GET /v2/{account_id}/chats/{chat_id}/participants const leden = wacht op eenpaal.chat.deelnemerslijstOphalen(chatId);
account.status: "verbonden"
Dezelfde regels, geen uitzonderingen daarop
Een gekoppeld account is nog steeds een Telegram-account en volgt de eigen limieten van Telegram: vermijd gloednieuwe accounts voor intensief gebruik, voer het volume geleidelijk op en houd minimaal 10 tot 20 seconds aan tussen berichten. Zie de Telegram API-gids en de verstuur bericht handleiding voor de volledige set-up.
Beslissingsboom

Welke is de juiste voor jouw situatie

Drie vragen, in volgorde. Stop bij de eerste die overeenkomt met uw project.
1
Neemt de gebruiker altijd als eerste contact met u op, en hoeft de bot alleen te reageren op commando's en berichten?
->Ondersteuningsbots, opt-in meldingen, opdrachttools waarbij de gebruiker het contact initieert.Bot-API
2
Moet je eerst contact opnemen en heb je ook kanalen, geheime chats, groepsbeheer of oproepen nodig?
->Volledige platformdekking, en je bent bereid om je eigen MTProto-client te bouwen en te onderhouden met Telethon, Pyrogram, GramJS of TDLib.Telegram User-API, zelfgebouwd
3
Moet je eerst contact opnemen, je voordoen als een echt account en in beweging komen zonder MTProto te bezitten?
->Berichten, chatgeschiedenis en groepsdeelnemersbeheer op een gekoppeld gebruikersaccount, waarbij de sessie voor je wordt afgehandeld.Eenpaal
De meeste teams belanden hier
Koppel een echt Telegram-account zonder een client te bouwen
Als je project als eerste contact moet leggen, maar geen kanalen, geheime chats of oproepen nodig heeft, brengt een gekoppeld account via Unipile je daarheen zonder dat je een Telegram User API-implementatie hoeft te onderhouden.
Bouw het met Unipile

Telegram Bot API vs Telegram API - Veelgestelde vragen

Veelgestelde vragen over het kiezen tussen de Telegram Bot API en de Telegram User API (MTProto).
De Bot API is een HTTP-interface die een botaccount aanstuurt en een bewust beperkt bereik biedt. De Telegram API, ook wel de Client API genoemd, spreekt het binaire MTProto-protocol en stuurt een echt gebruikersaccount aan met de volledige functionaliteit. Het zijn verschillende accounttypen, geen twee versies van hetzelfde.
Vraag aan wie je moet schrijven. Als je gebruikers je als eerste berichten en een botidentiteit acceptabel is, gebruik dan de Bot API. Als je mensen wilt bereiken die geen contact met je hebben opgenomen, of als een echt persoon wilt optreden, heb je toegang tot een gebruikersaccount nodig.
Nee. De gebruiker moet het gesprek als eerste starten. Dit is de enige beperking die de meeste producten van de Bot API afduwt, en geen enkel eindpunt omzeilt dit.
Nee. De Bot API heeft alleen de bot-token nodig die je van BotFather krijgt. api_id en api_hash komen van my.telegram.org en zijn voor de Client API, waarbij één api_id is toegestaan per telefoonnummer.
Moeilijk genoeg dat bijna niemand het vanaf de grond af aan schrijft. Je behandelt sessiepersistentie, tweefactorauthenticatie, herverbinding en een binair protocol. De meeste teams gebruiken Telethon, Pyrogram, GramJS of TDLib, en beheren nog steeds zelf de sessielevenscyclus.
Het is een andere naam voor de Client API, de MTProto-interface die zich verifieert als een echte Telegram-gebruiker in plaats van een bot.
Ja. Het koppelen van een bestaand account via de Apparaten-functie van Telegram biedt toegang tot het gebruikersaccount zonder MTProto te implementeren. Dat is hoe Unipile Telegram-accounts koppelt, via een QR-code-inlogproces of een gehoste authenticatiestroom.
Heb je nog vragen? Ons team staat klaar om te helpen.
Praat met een expert
nl_NLNL