API bota Telegram a API Telegram: którego potrzebujesz?

Telegram Bot API kontra Telegram API

API bota Telegram a API Telegram: którego potrzebujesz?

The Telegram Bot API i Telegram API (nazywane również Telegram User API, opartym na MTProto) rozwiązują inne problemy. Jedno z nich obsługuje konto bota poprzez HTTP. Drugie obsługuje prawdziwe konto użytkownika za pomocą protokołu binarnego, który implementujesz samodzielnie. Ten przewodnik analizuje, w czym każdy z nich Cię ogranicza, endpoint po endpoincie, oraz ile tak naprawdę kosztuje stworzenie i utrzymanie klienta Telegram User API w porównaniu do podłączenia istniejącego konta za pośrednictwem Unipile.

can-i-message-first.js
// Bot API: zablokowany, użytkownik nigdy nie napisał do bota const res = czekać bot.sendMessage(identyfikatorUżytkownika, "Cześć"); // -> 403 Forbidden: bot został zablokowany przez użytkownika // lub nigdy nie rozpoczęto rozmowy // Telegram User API przez Unipile: działa, to prawdziwe konto // POST /v2/:account_id/chats/send const czat = czekać unipile.czaty.create({ account_id: identyfikatorKontaTelegram, identyfikatory_użytkowników: [nazwa użytkownika], text: "Cześć" });
chat.status: "wysłano"
Dwa modele

API bota Telegram a API użytkownika Telegram, w jednej tabeli

Jeśli wiesz już, że Telegram ma wiele interfejsów API i chcesz po prostu dowiedzieć się, który z nich dotyczy Twojego projektu, ta tabela pozwoli Ci to ustalić w dziesięć sekund. Jeśli nadal potrzebujesz pełnego obrazu wszystkich trzech interfejsów API Telegramu, przeczytaj przewodnik dla początkujących Po pierwsze. Tutaj idziemy o jeden poziom głębiej w przypadku tych dwóch, pod które ludzie faktycznie programują: API Bota i API Użytkownika Telegrama.
KryteriaTelegram Bot APIAPI użytkownika Telegrama (MTProto)
Co to łączyKonto bota, utworzone i posiadane przez Twoją aplikacjęPrawdziwe konto użytkownika Telegram, powiązane z numerem telefonu
ProtokółStandardowe żądania i odpowiedzi HTTP oraz JSONMTProto, niestandardowy protokół binarny, który implementujesz
PoświadczeniaToken bota wydany przez @BotFatherapi_id + api_hash z my.telegram.org
Tożsamość na czatachPokazuje widoczną odznakę "bota", inną niż w przypadku osobyNie do odróżnienia od osoby korzystającej z aplikacji
Kto może pisać do kogoBot może odpowiedzieć dopiero, gdy użytkownik rozpocznie czatKonto może pisać do każdego, jak każdy użytkownik Telegrama
Typowa implementacjaKażdy klient HTTP, oficjalne i społecznościowe pakiety SDKTelethon, Pyrogram, GramJS, TDLib lub połączone konto przez Unipile
KosztBezpłatny w użyciuDarmowe w użyciu, koszty wyłącznie infrastruktury hostowanej we własnym zakresie
Telegram Bot API
ŁączyKonto bota
ProtokółHTTP, JSON
PoświadczeniaToken bota (BotFather)
TożsamośćWidoczna odznaka bota
Do kogo to może wysłać wiadomośćTylko użytkownicy, którzy napisali jako pierwsi
KosztDarmowy
API użytkownika Telegrama (MTProto)
ŁączyPrawdziwe konto użytkownika
ProtokółMTProto, binarny
Poświadczeniaapi_id + api_hash
TożsamośćNie do odróżnienia od człowieka
Do kogo to może wysłać wiadomośćKażda osoba, jak zwykły użytkownik
KosztBezpłatne, samodzielnie hostowane, tylko koszt
Pytanie, które decyduje

Do kogo chcesz napisać jako pierwszy?

Każda inna różnica między Telegram Bot API a Telegram User API jest drugorzędna wobec tej. Odpowiedz na to najpierw, a reszta tego przewodnika stanie się listą kontrolną, a nie decyzją.
Bot nie może rozpocząć konwersacji z użytkownikiem, który nigdy wcześniej do niego nie napisał
To jest zasada platformy Telegram, a nie ograniczenie Unipile czy błąd biblioteki. Konto bota może odpowiedzieć tylko w czacie, który użytkownik już otworzył, lub po tym, jak użytkownik kliknie t.me głębokiego linku lub dołączy do grupy, w której znajduje się bot. Jeśli Twój przypadek użycia wymaga skontaktowania się z kimś, kto jeszcze nie wchodził w interakcję z Twoim botem, Bot API nie wchodzi w grę, niezależnie od tego, jaki framework lub biblioteka się na nim znajduje.
Bot API działa

Użytkownik rozmawia z Twoim botem jako pierwszy

Boty wsparcia, narzędzia sterowane poleceniami, zapisy na powiadomienia, chatboty powiązane z Twoim produktem. Użytkownik znajduje Twój bot, rozpoczyna czat, a od tego momentu wszystko jest normalną wymianą zdań, z którą API bota sobie dobrze radzi.
API bota zostało zablokowane

Musisz odezwać się pierwszy

Pozyskiwanie klientów, rekrutacja, wiadomości do klientów powiązane z istniejącą listą kontaktów lub dowolny przepływ pracy, w którym Twój produkt inicjuje kontakt z użytkownikiem Telegrama. Wymaga to prawdziwego konta użytkownika, co oznacza użycie interfejsu Telegram User API (MTProto), a nie Bot API.
Macierz możliwości

Co naprawdę działa, punkt po punkcie

Poza różnicą w nagłówku, oto gdzie każda opcja blokuje Cię w praktyce. "Telegram User API (raw)" oznacza samodzielnie zbudowanego klienta MTProto z biblioteką taką jak Telethon, Pyrogram, GramJS lub TDLib. "Unipile" oznacza to samo konto prawdziwego użytkownika, połączone bez samodzielnego pisania kodu MTProto.
ZdolnośćAPI botaTelegram User API (surowe)Unipile
Rozpocznij czat z użytkikiem, który nigdy wcześniej nie pisałNieTak, z zastrzeżeniem ustawień prywatności użytkownikaTak, ta sama zasada co w przypadku każdego konta na Telegramie
Wysyłanie i odbieranie wiadomości tekstowychTak, na czatach, których bot jest częściąTakTak
Przeczytaj historię wiadomości sprzed dołączenia botaNieTakTak
Lista uczestników grupy, dodaj, usuńOgraniczone do własnych uprawnień botaTak, jeśli to zbudujeszTak, getParticipantsList, addParticipant, removeParticipant
Zarządzanie grupą: zatwierdź, awansuj, odezwij uprawnieniaTak, tylko jeśli bot jest administratoremTak, jeśli to zbudujeszNieobsługiwane
Kanały, społeczności, transmisjeTak, jeśli dodano jako administratorTakNieobsługiwane
Sekretne czatyNie dotyczyTak, jeśli to zbudujeszNieobsługiwane
Kontakt, lokalizacja, ankieta, załączniki wydarzeniaTakTakNieobsługiwane
Połączenia głosowe i wideoNieMożliwe, wysoki nakład wdrożeniaNieobsługiwane
Motyw czatu, archiwizacja, usuwanie czatuNie dotyczyTak, jeśli to zbudujeszNieobsługiwane
Tożsamość kontaOddzielna tożsamość bota, widoczna odznakaTożsamość rzeczywistego użytkownika, powiązana z numerem telefonuPrawdziwa tożsamość użytkownika, Twoje istniejące konto
Zarządzanie sesjami i urządzeniamiOparte na tokenach, bez koncepcji urządzeniaSamodzielnie zarządzasz kluczem uwierzytelniania MTProto oraz weryfikacją dwuetapową (2FA)Zarządzane za pomocą funkcji Urządzenia w Telegramie
Rozpocznij konwersację na sucho
API botaNie
API użytkownika (surowe)Tak, zależne od prywatności
UnipileTak
Historia wiadomości sprzed dołączenia
API botaNie
API użytkownika (surowe)Tak
UnipileTak
Uczestnicy grupy (pobierz / dodaj / usuń)
API botaOgraniczone do uprawnień bota
API użytkownika (surowe)Tak, samoróbka
UnipileTak, dedykowane punkty końcowe
Zarządzanie grupą
API botaTak, jeśli bot administratora
API użytkownika (surowe)Tak, samoróbka
UnipileNieobsługiwane
Kanały, społeczności, transmisje
API botaTak, jako administrator
API użytkownika (surowe)Tak
UnipileNieobsługiwane
Sekretne czaty
API botaNie dotyczy
API użytkownika (surowe)Tak, samoróbka
UnipileNieobsługiwane
Załączniki kontaktów / lokalizacji / ankiet / wydarzeń
API botaTak
API użytkownika (surowe)Tak
UnipileNieobsługiwane
Połączenia głosowe i wideo
API botaNie
API użytkownika (surowe)Możliwe, duży wysiłek
UnipileNieobsługiwane
Zarządzanie sesjami / urządzeniami
API botaOparte na tokenach
API użytkownika (surowe)Samodzielnie zarządzany klucz uwierzytelniania + 2FA
UnipileFunkcja Urządzenia w Telegramie
Czego Unipile nie obsługuje w serwisie Telegram
Kanały, społeczności i transmisje, motyw czatu, tajne czaty, kontakt, lokalizacja, załączniki ankiet i wydarzeń, administracja grupą (zatwierdzanie, awansowanie, odwoływanie), usuwanie czatów, archiwizowanie oraz połączenia głosowe lub wideo. Jeśli Twój projekt potrzebuje któregokolwiek z tych elementów, tylko samodzielnie zbudowany klient User API Telegrama obejmuje cały ten zakres.
Prawdziwy koszt

Prawdziwy koszt budowania na MTProto

Interfejs Telegram User API jest bezpłatny, ale "darmowy" dotyczy wyłącznie licencji. Samodzielne budowanie i utrzymywanie klienta Telegram User API wiąże się z realnymi kosztami inżynieryjnymi, których integracja z Bot API nigdy nie generuje. Oto jak te koszty wyglądałyby w rzeczywistości.
01

Zarządzanie sesjami i kluczami uwierzytelniania

MTProto to protokół binarny, a nie REST. Samodzielnie implementujesz schemat TL, wymianę kluczy uwierzytelniania oraz utrwalasz wynikową sesję. Stracisz sesję, a użytk musi uwierzytelnić się ponownie od zera.
02

Dwuskładnikowe uwierzytelnianie

Konta z hasłem w chmurze wymagają obsługi procesu uwierzytelniania dwuetapowego (2FA) opartego na protokole SRP podczas logowania. To kolejna maszynastanów do zbudowania, przetestowania i utrzymania w działaniu przy każdej aktualizacji protokołu Telegrama.
03

Jedno api_id na numer telefonu

api_id oraz api_hash są wydawane w my.telegram.org w sekcji "Narzędzia do tworzenia interfejsów API" i wymaga aktywnego konta Telegram. Telegram pozwala na jedno api_id na numer telefonu, co wpływa na sposób udostępniania danych uwierzytelniających dla środowiska testowego i produkcyjnego.
04

Konta objęte automatyczną obserwacją

Nieoficjalne klienty są objęte automatyczną obserwacją przez Telegram. Floodowanie, spam i sztuczne pompowanie liczników mogą skutkować trwałym banem, co oznacza, że ograniczenie częstotliwości (rate limiting) i rozgrzewanie (warm-up) są Twoją odpowiedzialnością, a nie domyślnym ustawieniem biblioteki.

shared-api-id-in-open-source.log
// Kopiowanie przykładowego api_id z repozytorium open source // zamiast rejestrować własną na my.telegram.org Błąd: API_ID_PUBLISHED_FLOOD // Flagi Telegrama api_id opublikowane w publicznym kodzie. // Każda dostarczana aplikacja wymaga własnego api_id / api_hash, // jeden na numer telefonu, w przeciwnym razie Twoi użytkownicy napotkają ten błąd.
Pomiń prace protokołowe
Nic z tego nie jest wymagane do połączenia prawdziwego konta Telegram
Unipile obsługuje sesję MTProto, proces logowania i cykl życia poświadczeń. Otrzymujesz prawdziwe, ludzkie konto Telegram połączone ze swoim produktem bez pisania klienta od zera.
Zacznij budować zamiast tego
Trzecia droga

Połącz istniejące konto, pomiń kompilację MTProto

Większość zespołów tak naprawdę nie chce budować klienta Telegrama. Chcą możliwości prawdziwego konta użytkownika: rozpoczynania konwersacji, czytania pełnej historii, zarządzania uczestnikami grup, bez konieczności posiadania własnej implementacji protokołu binarnego. Właśnie tym zajmuje się Unipile Telegram API jest dla.
Połącz się za pomocą funkcji Urządzenia w Telegramie
Unipile łączy istniejące konto użytkownika Telegrama za pomocą funkcji Urządzenia w Telegramie, czyli tego samego mechanizmu, który pozwala zalogować się do Telegram Desktop lub Telegram Web. Logowanie odbywa się za pomocą kodu QR lub poprzez Hosted Auth z dostawcy: "TELEGRAM" dla uproszczonego przepływu połączeń.
Bez api_id, bez api_hash, bez pisania kodu MTProto
Nigdy samodzielnie nie obsługujesz wymiany klucza uwierzytelniającego, schematu TL ani weryfikacji dwuetapowej (2FA). Powiązane konto zachowuje się jak prawdziwy użytkownik Telegrama, ponieważ nim jest, a nie jak bot czy symulowany klient.
Uczestnicy grupy, za pośrednictwem dedykowanych punktów końcowych
pobierz Listę Uczestników, dodajUczestnika, usuńUczestnika, udostępniony przez POST, GEToraz DELETE /v2/{account_id}/chats/{chat_id}/participants. Żadnych niestandardowych wywołań MTProto do napisania w celu podstawowego zarządzania członkostwem.
Status sesji powiązany z listą urządzeń Telegrama
Jeśli urządzenie Unipile zostanie usunięte z aktywnych sesji konta w Telegramie, status konta zmieni się na rozłączony. Cykl życia sesji jest widoczny i przewidywalny, a nie jest czarną skrzynką, którą debugujesz w pojedynkę.

connect-telegram-account.js
// Połącz istniejące konto użytkownika Telegram // przez Hosted Auth, nie jest wymagany kod MTProto const połączyć = czekać unipile.uwierzytelnianie hostowane.create({ dostawcy: ["TELEGRAM"], ważne do: "2026-12-31T23:59:59.000Z" }); // Użytkownik skanuje kod QR za pomocą aplikacji Telegram // Status konta zmienia się na "połączono" // GET /v2/{account_id}/chats/{chat_id}/participants const członkowie = czekać unipile.czaty.pobierz Listę Uczestników(identyfikator czatu);
account.status: "połączono"
Te same zasady, żadnych dróg na skróty
Połączone konto nadal jest kontem Telegrama i podlega własnym ograniczeniom Telegrama: unikaj używania brand nowych kont do intensywnych działań, zwiększaj wolumen stopniowo i zachowuj co najmniej 10 do 20 sekund odstępu między wiadomościami. Zobacz Przewodnik po API Telegrama i przewodnik wysyłania wiadomości do pełnej konfiguracji.
Drzewo decyzyjne

Która opcja jest właściwa w Twoim przypadku

Trzy pytania, w określonej kolejności. Zatrzymaj się na pierwszym, które pasuje do Twojego projektu.
1
Czy użytkownik zawsze pisze do Ciebie jako pierwszy i czy bot musi odpowiadać tylko na polecenia i wiadomości?
->Boty wsparcia, powiadomienia subskrypcyjne, narzędzia poleceń, w których użytkownik inicjuje kontakt.API bota
2
Czy musisz najpierw się odezwać, a także czy potrzebujesz kanałów, tajnych czatów, administracji grupami lub połączeń?
->Pełne pokrycie platform i gotowość do zbudowania oraz utrzymywania własnego klienta MTProto przy użyciu Telethon, Pyrogram, GramJS lub TDLib.API użytkownika Telegrama, zbudowane samodzielnie
3
Czy musisz najpierw się odezwać, działać jako prawdziwe konto i ruszyć z miejsca bez posiadania MTProto?
->Wiadomości, historia czatu i zarządzanie uczestnikami grup na połączonym koncie użytkownika, z sesją obsługiwaną w tle.Unipile
Większość zespołów ląduje tutaj
Podłącz prawdziwe konto Telegram bez tworzenia klienta
Jeśli Twój projekt musi najpierw nawiązać kontakt, ale nie potrzebuje kanałów, tajnych czatów ani połączeń, połączone konto przez Unipile pozwala to osiągnąć bez konieczności utrzymywania implementacji Telegram User API.
Zbuduj to z Unipile

API bota Telegram a API Telegram – FAQ

Częste pytania dotyczące wyboru między API botów Telegrama a API użytkownika Telegrama (MTProto).
Bot API to interfejs HTTP, który obsługuje konto bota i udostępnia celowo ograniczoną powierzchnię. Telegram API, nazywane również Client API, obsługuje protokół binarny MTProto i obsługuje prawdziwe konto użytkownika z pełnym zestawem funkcji. Są to różne typy kont, a nie dwie wersje tego samego.
Zapytaj, do kogo musisz napisać. Jeśli użytkownicy napiszą do Ciebie jako pierwsi i akceptowalna jest tożsamość bota, użyj Bot API. Jeśli musisz skontaktować się z osobami, które się z Tobą nie skontaktowały, lub działać jako prawdziwa osoba, potrzebujesz dostępu do konta użytkownika.
Nie. Użytkownik musi najpierw rozpocząć konwersację. Jest to jedyne ograniczenie, które odpycha większość produktów od Bot API i żaden punkt końcowy tego nie omija.
Nie. API bota potrzebuje tylko tokena bota, którego daje BotFather. api_id i api_hash pochodzą z my.telegram.org i są przeznaczone dla Client API, przy czym dozwolone jest jedno api_id na numer telefonu.
Trudne na tyle, że prawie nikt nie pisze tego od zera. Musisz radzić sobie z trwałością sesji, uwierzytelnianiem dwuskładnikowym, ponownym łączeniem i protokołem binarnym. Większość zespołów używa Telethon, Pyrogram, GramJS lub TDLib, a mimo to sama zarządza cyklem życia sesji.
To inna nazwa interfejsu Client API, czyli interfejsu MTProto, który uwierzytelnia się jako prawdziwy użytkownik Telegrama zamiast jako bot.
Tak. Połączenie istniejącego konta za pomocą funkcji Urządzenia w Telegramie zapewnia dostęp do konta użytkownika bez implementowania protokołu MTProto. W ten sposób Unipile łączy konta Telegrama – poprzez logowanie za pomocą kodu QR lub hostowany proces uwierzytelniania.
Masz jeszcze jakieś pytania? Nasz zespół służy pomocą.
Porozmawiaj z ekspertem
pl_PLPL