İçindekiler
Yetenekler ve maliyet
Karar ver ve inşa et
Sorular
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.
// 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.
| Kriterler | Telegram Bot API'si | Telegram Kullanıcı API'si (MTProto) |
|---|---|---|
| Neyi bağlar | Uygulamanız tarafından oluşturulan ve sahibi olduğunuz bir bot hesabı | Gerçek bir Telegram kullanıcı hesabı, telefon numarasına bağlı |
| Protokol | Standart HTTP, JSON istekleri ve yanıtları | uyguladığınız özel bir ikili protokol olan MTProto |
| Kimlik Bilgileri | tarafından oluşturulan bir bot belirteci @BotFather | api_id + api_hash itibaren my.telegram.org |
| Sohbetlerde kimlik | Bir kişiden farklı olarak görünen bir "bot" rozeti gösterir | Uygulamayı kullanan bir kişiden ayırt edilemez |
| Kimlerin kime mesaj atabileceği | Bot, 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 uygulama | Herhangi bir HTTP istemcisi, resmi ve topluluk SDK'ları | Telethon, Pyrogram, GramJS, TDLib veya Unipile aracılığıyla bağlanmış bir hesap |
| Maliyet | Kullanı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
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.
| Yetenek | Bot API | Telegram Kullanıcı API'si (ham) | Unipile |
|---|---|---|---|
| Hiç mesaj atmamış bir kullanıcıyla sohbet başlat | Hayır | Evet, kullanıcının gizlilik ayarlarına bağlı olarak | Evet, herhangi bir Telegram hesabıyla aynı kural |
| Metin mesajları gönderip alın | Evet, botun dahil olduğu sohbetlerde | Evet | Evet |
| Botun katıldığı andan önceki mesaj geçmişini oku | Hayır | Evet | Evet |
| Grup katılımcı listesi, ekle, çıkar | Botun kendi izinleriyle sınırlıdır | Evet, eğer inşa edersen | Evet, getParticipantsList, addParticipant, removeParticipant |
| Grup yönetimi: onaylama, terfi ettirme, yetkiyi kaldırma | Evet, yalnızca bot bir yönetici ise | Evet, eğer inşa edersen | Desteklenmiyor |
| Kanallar, topluluklar, yayınlar | Evet, yönetici olarak eklenirse | Evet | Desteklenmiyor |
| Gizli sohbetler | Geçerli değil | Evet, eğer inşa edersen | Desteklenmiyor |
| İletişim, konum, anket, etkinlik ekleri | Evet | Evet | Desteklenmiyor |
| Sesli ve görüntülü aramalar | Hayır | Olası, yüksek uygulama çabası | Desteklenmiyor |
| Sohbet teması, arşivleme, sohbet silme | Geçerli değil | Evet, eğer inşa edersen | Desteklenmiyor |
| Hesap kimliği | Ayrı bot kimliği, görünür rozet | Gerçek kullanıcı kimliği, telefon numarasına bağlı | Gerçek kullanıcı kimliği, mevcut hesabınız |
| Oturum ve cihaz yönetimi | Jeton tabanlı, cihaz gerektirmeyen konsept | MTProto yetkilendirme anahtarını ve 2FA'yı kendiniz yönetirsiniz | Telegram’ı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.
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 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.Üçü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:
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.
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:
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. 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.
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 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.
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.