Telegram Bot API ve Telegram API: Hangisine İhtiyacınız Var?

Telegram Bot API ve Telegram API

Telegram Bot API ve Telegram API: Hangisine İhtiyacınız Var?

Bu Telegram Bot API'si ve Telegram API (Telegram Kullanıcı API'si olarak da adlandırılır, MTProto üzerine kurulmuştur) farklı sorunları çözer. Biri HTTP üzerinden bir bot hesabı çalıştırır. Diğeri ise kendinizin uyguladığı bir ikili protokol üzerinden gerçek bir kullanıcı hesabı çalıştırır. Bu kılavuz, uç nokta uç nokta her birinin sizi nerede engellediğini ve bir Telegram Kullanıcı API istemcisi oluşturup bakımını yapmanın, mevcut bir hesabı Unipile üzerinden bağlamaya kıyasla gerçek maliyetinin ne olduğunu inceliyor.

can-i-message-first.js
// Bot API: engellendi, kullanıcı botla hiç mesajlaşmadı const Res = bekliyor bot.sendMessage(kullanıcıId, "Merhaba"); // -> 403 Forbidden: bot kullanıcı tarafından engellendi veya hiç konuşma başlatmadı Unipile üzerinden Telegram Kullanıcı API'si: çalışıyor, gerçek bir hesap // POST /v2/:account_id/chats/send const sohbet = bekliyor unipile.sohbetler.create({ account_id: telegramHesapKimliği, kullanıcı_idleri: [kullanıcı adı], text: "Merhaba" });
chat.status: "gönderildi"
İki model

Telegram Bot API ve Telegram User API, tek bir tabloda

Telegram'ın birden fazla API'ye sahip olduğunu zaten biliyorsanız ve yalnızca hangisinin projeniz için geçerli olduğunu öğrenmek istiyorsanız, bu tablo sizi on saniye içinde sonuca ulaştırır. Üç Telegram API'sinin tümünün büyük resmine hâlâ ihtiyacınız varsa, şunu okuyun: başlangıç kılavuzu Birincisi, insanların gerçekte üzerinde uygulama geliştirdiği iki API'de bir seviye daha derine iniyoruz: Bot API ve Telegram Kullanıcı API'si.
KriterlerTelegram Bot API'siTelegram Kullanıcı API'si (MTProto)
Neyi bağlarUygulamanız tarafından oluşturulan ve sahibi olduğunuz bir bot hesabıGerçek bir Telegram kullanıcı hesabı, telefon numarasına bağlı
ProtokolStandart HTTP, JSON istekleri ve yanıtlarıuyguladığınız özel bir ikili protokol olan MTProto
Kimlik Bilgileritarafından oluşturulan bir bot belirteci @BotFatherapi_id + api_hash itibaren my.telegram.org
Sohbetlerde kimlikBir kişiden farklı olarak görünen bir "bot" rozeti gösterirUygulamayı kullanan bir kişiden ayırt edilemez
Kimlerin kime mesaj atabileceğiBot, yalnızca bir kullanıcı sohbeti başlattığında yanıt verebilir.Hesap, herhangi bir Telegram kullanıcısı gibi herkese mesaj gönderebilir
Tipik uygulamaHerhangi bir HTTP istemcisi, resmi ve topluluk SDK'larıTelethon, Pyrogram, GramJS, TDLib veya Unipile aracılığıyla bağlanmış bir hesap
MaliyetKullanımı ücretsizÜcretsiz kullanım, kendi sunucunda barındırma (self-hosted) sadece altyapı maliyeti
Telegram Bot API'si
BağlanırBir bot hesap
ProtokolHTTP, JSON
Kimlik BilgileriBot belirteci (BotFather)
KimlikGörünür bot rozeti
Kime mesaj atabilirYalnızca ilk mesajı gönderen kullanıcılar
MaliyetÜcretsiz
Telegram Kullanıcı API'si (MTProto)
BağlanırGerçek bir kullanıcı hesabı
ProtokolMTProto, ikili
Kimlik Bilgileriapi_id + api_hash
KimlikBir insandan ayırt edilemez
Kime mesaj atabilirHerhangi biri, normal bir kullanıcı gibi
MaliyetÜcretsiz, kendi sunucunuzda barındırılan, sadece maliyet
Karar veren soru

Kime ilk önce yazmak istiyorsun?

Telegram Bot API ile Telegram Kullanıcı API'si arasındaki diğer tüm farklar bunun yanında ikincil önemdedir. Önce bunu yanıtlayın; bu kılavuzun geri kalanı bir karar değil, sadece kontrol listesi haline gelecektir.
Bir bot, kendisine daha önce hiç mesaj göndermemiş bir kullanıcıyla sohbet başlatamaz
Bu bir Unipile kısıtlaması veya kütüphane hatası değil, bir Telegram platform kuralıdır. Bir bot hesabı yalnızca kullanıcının halihazırda açtığı bir sohbetin içinde veya kullanıcı dokunduktan sonra yanıt verebilir t.me derin bağlantı kullanır veya botun içinde bulunduğu bir gruba katılır. Kullanım senaryonuz, botunuzla henüz etkileşime geçmemiş birine ulaşmanızı gerektiriyorsa, üzerinde hangi çatı veya kütüphane olursa olsun Bot API bir seçenek değildir.
Bot API çalışıyor

Kullanıcı önce botunuzla konuşur

Destek botları, komut odaklı araçlar, bildirim tercihleri, ürününüzden bağlantı verilen sohbet botları. Kullanıcı botunuzu bulur, sohbeti başlatır ve bundan sonraki her şey Bot API'nin iyi bir şekilde yönettiği normal bir alışveriştir.
Bot API engellendi

İlk olarak sen ulaşmalısın

Mevcut bir kişi listesine bağlı olarak yapılan satış odaklı iletişim, işe alım, müşteri mesajlaşması veya ürününüzün bir Telegram kullanıcısı ile iletişimi başlattığı herhangi bir iş akışı. Bu, gerçek bir kullanıcı hesabı gerektirir; yani Bot API'sini değil, Telegram Kullanıcı API'sini (MTProto) kullanmak zorundadır.
Yetenek matrisi

Uç nokta uç nokta gerçekte ne işe yarıyor

Manşetteki farkın ötesinde, her seçeneğin pratikte sizi nerede engellediği aşağıda açıklanmıştır. "Telegram Kullanıcı API'si (ham)", Telethon, Pyrogram, GramJS veya TDLib gibi bir kütüphane ile kendi oluşturduğunuz bir MTProto istemcisi anlamına gelir. "Unipile", MTProto kodunu kendiniz yazmadan bağlanan aynı gerçek kullanıcı hesabı anlamına gelir.
YetenekBot APITelegram Kullanıcı API'si (ham)Unipile
Hiç mesaj atmamış bir kullanıcıyla sohbet başlatHayırEvet, kullanıcının gizlilik ayarlarına bağlı olarakEvet, herhangi bir Telegram hesabıyla aynı kural
Metin mesajları gönderip alınEvet, botun dahil olduğu sohbetlerdeEvetEvet
Botun katıldığı andan önceki mesaj geçmişini okuHayırEvetEvet
Grup katılımcı listesi, ekle, çıkarBotun kendi izinleriyle sınırlıdırEvet, eğer inşa edersenEvet, getParticipantsList, addParticipant, removeParticipant
Grup yönetimi: onaylama, terfi ettirme, yetkiyi kaldırmaEvet, yalnızca bot bir yönetici iseEvet, eğer inşa edersenDesteklenmiyor
Kanallar, topluluklar, yayınlarEvet, yönetici olarak eklenirseEvetDesteklenmiyor
Gizli sohbetlerGeçerli değilEvet, eğer inşa edersenDesteklenmiyor
İletişim, konum, anket, etkinlik ekleriEvetEvetDesteklenmiyor
Sesli ve görüntülü aramalarHayırOlası, yüksek uygulama çabasıDesteklenmiyor
Sohbet teması, arşivleme, sohbet silmeGeçerli değilEvet, eğer inşa edersenDesteklenmiyor
Hesap kimliğiAyrı bot kimliği, görünür rozetGerçek kullanıcı kimliği, telefon numarasına bağlıGerçek kullanıcı kimliği, mevcut hesabınız
Oturum ve cihaz yönetimiJeton tabanlı, cihaz gerektirmeyen konseptMTProto yetkilendirme anahtarını ve 2FA'yı kendiniz yönetirsinizTelegram’ın kendi “Cihazlar” özelliği aracılığıyla yönetilir
Hiç tanışmadan bir sohbet başlatın
Bot APIHayır
Kullanıcı API'si (ham)Evet, gizliliğe bağlı
UnipileEvet
Katılmadan önceki mesaj geçmişi
Bot APIHayır
Kullanıcı API'si (ham)Evet
UnipileEvet
Grup katılımcıları (görüntüle / ekle / çıkar)
Bot APIBot izinleriyle sınırlıdır
Kullanıcı API'si (ham)Evet, kendim yaptım
UnipileEvet, adanmış uç noktalar
Grup yönetimi
Bot APIEvet, yönetici botu ise
Kullanıcı API'si (ham)Evet, kendim yaptım
UnipileDesteklenmiyor
Kanallar, topluluklar, yayınlar
Bot APIEvet, yönetici olarak
Kullanıcı API'si (ham)Evet
UnipileDesteklenmiyor
Gizli sohbetler
Bot APIGeçerli değil
Kullanıcı API'si (ham)Evet, kendim yaptım
UnipileDesteklenmiyor
Kişi / konum / anket / etkinlik ekleri
Bot APIEvet
Kullanıcı API'si (ham)Evet
UnipileDesteklenmiyor
Sesli ve görüntülü aramalar
Bot APIHayır
Kullanıcı API'si (ham)Mümkün, yüksek çaba
UnipileDesteklenmiyor
Oturum / cihaz yönetimi
Bot APIToken tabanlı
Kullanıcı API'si (ham)Kendi yönettiğin kimlik doğrulama anahtarı + 2FA
UnipileTelegram'ın kendi Cihazlar özelliği
Unipile'ın Telegram'da Kapsamadığı Şeyler
Kanallar, topluluklar ve yayınlar, sohbet teması, gizli sohbetler, kişi, konum, anket ve etkinlik ekleri, grup yönetimi (onaylama, yetkilendirme, yetkiyi geri alma), sohbet silme, arşivleme ve sesli veya görüntülü aramalar. Projenizin bunlardan herhangi birine ihtiyacı varsa, tüm alanı yalnızca kendi oluşturduğunuz bir Telegram User API istemcisi kapsar.
Gerçek maliyet

MTProto üzerine inşa etmenin gerçek maliyeti

Telegram Kullanıcı API'si ücretsizdir, ancak "ücretsiz" yalnızca lisansı kapsar. Kendi başınıza bir Telegram Kullanıcı API istemcisi oluşturmak ve bakımını yapmak, bir Bot API entegrasyonunun asla sahip olmadığı gerçek bir mühendislik maliyetine sahiptir. Bu maliyetin gerçekte neye benzediği aşağıdadır.
01

Oturum ve kimlik doğrulama anahtarı yönetimi

MTProto bir REST değil, ikili (binary) bir protokoldür. TL şemasını, yetkilendirme anahtarı değişimini (auth key exchange) kendiniz uygular ve ortaya çıkan oturumu kalıcı hale getirirsiniz. Oturumu kaybederseniz, kullanıcı sıfırdan yeniden kimlik doğrulamak zorunda kalır.
02

İki aşamalı kimlik doğrulama

Bulut şifresine sahip hesaplar, oturum açma sırasında Telegram'ın SRP tabanlı 2FA akışının ele alınmasını gerektirir. Bu, oluşturulması, test edilmesi ve her Telegram protokol güncellemesinde çalışır durumda tutulması gereken fazladan bir durum makinesidir.
03

Telefon numarası başına bir api_id

api_id ve api_hash düzenlenmektedir my.telegram.org "API geliştirme araçları" altında yer alır ve aktif bir Telegram hesabı gerektirir. Telegram, tek bir api_id test ve üretim kimlik bilgilerini sağlama biçiminizi şekillendiren telefon numarası başına.
04

Otomatik gözetim altındaki hesaplar

Resmi olmayan istemciler Telegram tarafından otomatik gözetim altındadır. Flood, spam ve sayaçların yapay olarak şişirilmesi kalıcı bir yasaklanmaya yol açabilir; bu, oran sınırlamasının (rate limiting) ve ısınmanın (warm-up) bir kütüphane varsayılanı değil, sizin sorumluluğunuzda olduğu anlamına gelir.

açık-kaynakta-paylaşılan-api-id.log
// Açık kaynaklı bir repodan örnek bir api_id kopyalayıp yapıştırmak // my.telegram.org adresinden kendi uygulamanızı kaydetmek yerine Hata: API_ID_YAYINLANDI_AKIN // Genel kodlarda yayınlanan Telegram api_id bayrak değerleri. Gönderdiğiniz her uygulamanın kendi api_id / api_hash değerine ihtiyacı vardır, // Her telefon numarası için bir tane, aksi takdirde son kullanıcılarınız bu hatayla karşılaşır.
Protokol çalışmalarını atla
Gerçek bir Telegram hesabı bağlamak için bunların hiçbirine gerek yoktur
Unipile sizin için MTProto oturumunu, giriş akışını ve kimlik bilgisi yaşam döngüsünü yönetir. Sıfırdan bir istemci yazmak zorunda kalmadan ürününüze bağlanmış gerçek, insani bir Telegram hesabına sahip olursunuz.
Bunun yerine inşa etmeye başla
Üçüncü yol

Mevcut bir hesabı bağlayın, MTProto derlemesini atlayın

Çoğu ekip aslında bir Telegram istemcisi oluşturmak istemez. İkili bir protokol uygulamasına sahip olmadan, gerçek bir kullanıcı hesabının yeteneklerini isterler: sohbet başlatmak, tüm geçmişi okumak, grup katılımcılarını yönetmek. Unipile'ın sunduğu şey de budur Telegram API içindir.
Telegram's kendi Cihazlar özelliği aracılığıyla bağlanın
Unipile, mevcut bir Telegram kullanıcı hesabını, Telegram Masaüstü veya Telegram Web'e giriş yapmanızı sağlayan mekanizmanın aynısı olan Telegram'ın Cihazlar işlevi aracılığı ile birbirine bağlar. Giriş işlemi, QR kod ile veya şu yöntemle barındırılan kimlik doğrulama (Hosted Auth) üzerinden gerçekleşir: sağlayıcılar: "TELEGRAM" kolay entegre edilen bir bağlantı akışı için.
api_id yok, api_hash yok, yazılacak MTProto yok
Kimlik doğrulama anahtarı değişimini, TL şemasını veya İki Aşamalı Doğrulamayı (2FA) asla kendi başınıza halletmezsiniz. Bağlı hesap, bir bot veya simüle edilmiş bir istemci değil, gerçek bir Telegram kullanıcısı olduğu için tıpkı öyle davranır.
Grup katılımcıları, ayrılmış uç noktalar aracılığıyla
katılımcı Listesini Al, Katılımcı ekle, katılımcıyıKaldır, aracılığıyla açıkta bırakılan POSTA, GETve DELETE /v2/{account_id}/chats/{chat_id}/participants. Temel üyelik yönetimi için yazılacak özel MTProto çağrısı yok.
Oturum durumu Telegram'ın cihaz listesine bağlandı
Unipile cihazı Telegram içindeki hesabın aktif oturumlarından kaldırılırsa, hesap durumu şu şekilde değişir: Bağlantı kesildi. Oturum yaşam döngüsü, tek başına hata ayıkladığınız bir kara kutu değil, görünür ve öngörülebilirdir.

telegram-hesabini-bagla.js
Mevcut bir Telegram kullanıcı hesabını bağlayın // Barındırılan Kimlik Doğrulama ile, MTProto kodu gerekmez const bağlantı = bekliyor unipile.barındırılanKimlikDoğrulama.create({ sağlayıcılar ["TELGRAF"], sonKullanmaTarihi: "2026-12-31T23:59:59.000Z" }); // Kullanıcı Telegram uygulamasıyla QR kodu tarar // Hesap durumu "bağlandı" olarak değiştirilir" // GET /v2/{account_id}/chats/{chat_id}/participants const üyeler = bekliyor unipile.sohbetler.katılımcı Listesini Al(sohbetKimliği);
hesap.durumu: "bağlandı"
Aynı kurallar, bunların etrafından dolaşmak yok
Bağlı bir hesap hâlâ bir Telegram hesabıdır ve Telegram'ın kendi sınırlarına tabidir: yoğun kullanım için yepyeni hesaplardan kaçının, hacmi kademeli olarak artırın ve mesajlar arasında en az 10 ila 20 saniye bırakın. Bkz. Telegram API kılavuzu ve mesaj gönderme kılavuzu eksiksiz kurulum için.
Karar ağacı

Durumunuz için hangisi doğru

Üç soru, sırayla. Projenizle eşleşen ilk soruda durun.
1
Kullanıcı size her zaman ilk önce mi mesaj atıyor ve botun yalnızca komutlara ve mesajlara yanıt vermesi mi gerekiyor?
->Destek botları, kullanıcının katılımına bağlı (opt-in) bildirimler, kullanıcının iletişimi başlattığı komut araçları.Bot API
2
Önce sizin mi ulaşmanız gerekiyor, ayrıca kanallara, gizli sohbetlere, grup yönetimine veya aramalara ihtiyaç duyuyor musunuz?
->Tam platform desteği ve Telethon, Pyrogram, GramJS veya TDLib kullanarak kendi MTProto istemcinizi oluşturmaya ve bakımını yapmaya isteklisiniz.Telegram Kullanıcı API'si, kendi yapımım
3
MTProto'ya sahip olmadan önce ilk siz mi ulaşmanız, gerçek bir hesap gibi hareket etmeniz ve harekete geçmeniz gerekiyor?
->Bağlı bir kullanıcı hesabında mesajlaşma, sohbet geçmişi ve grup katılımcı yönetimi; oturum sizin için yönetilir.Unipile
Çoğu takım burada karar kılıyor
Bir istemci oluşturmadan gerçek bir Telegram hesabını bağlayın
Projenizin ilk olarak iletişime geçmesi gerekiyorsa ancak kanallara, gizli sohbetlere veya aramalara ihtiyacı yoksa, Unipile aracılığıyla bağlanan bir hesap, bakımını yapmanız gereken bir Telegram Kullanıcı API'si uygulamasına gerek kalmadan sizi hedefinize ulaştırır.
Unipile ile oluşturun

Telegram Bot API ve Telegram API - SSS

Telegram Bot API ile Telegram Kullanıcı API'si (MTProto) arasında seçim yapma konusunda sık sorulan sorular.
Bot API, bir bot hesabını yöneten ve bilerek sınırlı bir yüzey sunan bir HTTP arayüzüdür. İstemci API'si olarak da adlandırılan Telegram API'si ise MTProto ikili protokolünü kullanır ve tüm özellik setine sahip gerçek bir kullanıcı hesabını yönetir. Bunlar aynı şeyin iki versiyonu değil, farklı hesap türleridir.
Kime yazmanız gerektiğini sorun. Kullanıcılarınız size önce mesaj gönderdiyse ve bir bot kimliği kabul edilebilirse, Bot API'yi kullanın. Sizinle iletişime geçmemiş kişilere ulaşmanız veya gerçek bir kişi gibi hareket etmeniz gerekiyorsa, kullanıcı hesabı erişimine ihtiyacınız vardır.
Hayır. Kullanıcı sohbeti önce başlatmalıdır. Bu, çoğu ürünü Bot API'den uzaklaştıran tek sınırdır ve hiçbir uç nokta bu durumu aşamaz.
Hayır. Bot API yalnızca BotFather'ın size verdiği bot token'ına ihtiyaç duyar. api_id ve api_hash my.telegram.org adresinden alınır ve Client API içindir; telefon numarası başına bir api_id'ye izin verilir.
Neredeyse hiç kimsenin sıfırdan yazamayacağı kadar zor. Oturum kalıcılığını, iki aşamalı kimlik doğrulamayı, yeniden bağlanmayı ve ikili bir protokolü yönetiyorsunuz. Çoğu ekip Telethon, Pyrogram, GramJS veya TDLib kullanır ve yine de oturum yaşam döngüsüne kendileri sahip olur.
Bu, Client API'nin, bir bot yerine gerçek bir Telegram kullanıcısı olarak kimlik doğrulayan MTProto arayüzünün başka bir adıdır.
Evet. Mevcut bir hesabı Telegram'ın Cihazlar özelliği aracılığıyla bağlamak, MTProto'yu uygulamak zorunda kalmadan kullanıcı hesabı erişimi sağlar. Unipile, Telegram hesaplarını bir QR kodlu giriş veya barındırılan bir kimlik doğrulama akışı aracılığıyla işte böyle bağlar.
Hala sorularınız mı var? Ekibimiz yardım etmek için burada.
Bir uzmanla konuşun
tr_TRTR