Android'de Client ID ve API ID'yi Hızlıca Alma ve Kullanma
Client ID — uygulamanın kısa adıdır; API ID (sayısal) ve API Hash (metin dizisi) — Telegram API'sine erişim anahtarlarıdır. Bunları my.telegram.org üzerinden birkaç dakikada alabilirsiniz; ardından TDLib konfigürasyonuna, istemci kaynak kodlarına ekleyebilir veya userbot'lar için kullanabilirsiniz. Aşağıda kesin adımlar ve kod örnekleri yer almaktadır.
Client ID, API ID ve API Hash Nerede Kullanılır?
- MTProto aracılığıyla istemci oturumunun başlatılması (TDLib, resmi istemci ve fork'lar).
- Android istemcisinin derlenmesi/fork edilmesi sırasında (APP_ID ve APP_HASH değiştirilmesi).
- Userbot uygulamaları için (kullanıcı taklidi). Bot API aracılığıyla standart botlar için API ID gerekmez.
- Web ve mobil entegrasyonlarda OAuth/Telegram Login için (hesap üzerinden kimlik doğrulama).
Genel bir istemci geliştiriyorsanız, gereksiz moderasyon ve kısıtlamalardan kaçınmak için uygulamayı doğru şekilde (Android platformu olarak) kaydedin.
API ID ve API Hash Nasıl Alınır? (Adım Adım)
- https://my.telegram.org adresini açın — kendi telefon numaranızla giriş yapın (tercihen ana hesabınız).
- "API development tools" bölümüne gidin.
- Formu doldurun:
- App title — uygulama adı.
- Short name — kısa ad (bu Client ID'dir).
- Platform — Android'i seçin.
- Onaylamadan sonra API ID (sayı) ve API Hash (metin dizisi) alırsınız. Bunları kaydedin — Hash geri alınamaz, yalnızca yeni bir uygulama kaydetmeniz gerekir.
API Hash'i kimseyle paylaşmayın — bu bir şifre gibidir. Sızıntı durumunda, yabancı kodların uygulamanız adına işlem yapmasına olanak tanır.
Parametrelerin Kısa Tablosu
| Parametre | Açıklama | Örnek |
|---|---|---|
| API ID | Uygulamanın sayısal tanımlayıcısı | 611335 |
| API Hash | İstekleri imzalamak için kullanılan metin dizisi | a3406de8d171bb422bb6ddf3bbd800e2 |
| Client ID (Short name) | Uygulamanın kısa adı | myandroidtg |
Android Projesine Nasıl Eklenir? (Örnekler)
- TDLib (Java/Kotlin):
TdApi.TdlibParameters params = new TdApi.TdlibParameters();
params.apiId = 123456; // sizin API ID'niz
params.apiHash = "YOUR_API_HASH";
params.systemLanguageCode = "ru";
params.deviceModel = "MyApp";
-
Resmi istemcinin fork'u: Konfigürasyondaki değerleri değiştirin (örneğin BuildVars) — APP_ID ve APP_HASH.
-
Userbot vs Bot:
- Bot API: Yalnızca bot token'ı gerekir (API ID gerekli değildir).
- Userbot (MTProto): API ID/Hash zorunludur.
Testler sırasında ayrı bir hesap ve ayrı anahtarlar kullanın — böylece engellemelerden ve günlük karışıklıklarından kaçınmak daha kolay olur.
Sık Karşılaşılan Hatalar
- AUTH_KEY_UNREGISTERED — yanlış API ID/Hash: Uyumluluğu kontrol edin ve gereksiz boşluk olmadığından emin olun.
- FloodWait — limit aşımı: İstek sıklığını azaltın, gecikme ve kuyruk kullanın.
- App title/Short name zaten alınmış — adı değiştirin.
- Kaybolan API Hash — yeni bir uygulama kaydetmeniz gerekecek.
SSS
- Bot API için Client ID gerekli mi?
- Hayır. Bot API bot token'ını kullanır, API ID/Hash uygulanmaz.
- Başkasının API ID/Hash'ini kullanabilir miyim?
- Hayır. Bu bir ihlaldir: Başkalarının anahtarları engellemeye ve sorumluluk sızıntısına yol açabilir.
- Android projesinde API Hash nerede saklanmalı?
- Depo dışında: Keystore/CI secrets içindeki gizli bilgiler veya sunucuda, açık kodda değil.
Gerekirse, projeniz için bir konfigürasyon örneği hazırlayabilirim (Gradle/BuildVars veya TDLib başlatma örneği).