Как быстро получить и использовать Client ID и API ID в Android
Client ID — это короткое имя приложения; API ID (числовой) и API Hash (строковый) — ключи доступа к Telegram API. Получить их можно за пару минут на my.telegram.org; затем вставить в конфиг TDLib, исходники клиента или использовать для userbot'ов. Ниже — точные шаги и примеры кода.
Где используются Client ID, API ID и API Hash
- Инициализация клиентской сессии через MTProto (TDLib, родной клиент и форки).
- При сборке/форкe Android-клиента (замена APP_ID и APP_HASH).
- Для userbot-приложений (имитация пользователя). Для стандартных ботов через Bot API API ID не нужен.
- Для OAuth/Telegram Login в вебе и мобильных интеграциях (авторизация через аккаунт).
Если вы делаете публичный клиент — регистрируйте приложение корректно (платформа Android), чтобы избежать лишних модераций и ограничений.
Как получить API ID и API Hash (пошагово)
- Откройте https://my.telegram.org — войдите под своим номером (лучше основной аккаунт).
- Перейдите в "API development tools".
- Заполните форму:
- App title — название приложения.
- Short name — короткое имя (это Client ID).
- Platform — выберите Android.
- После подтверждения получите API ID (число) и API Hash (строка). Сохраните их — Hash восстановить нельзя, только регистрировать новое приложение.
Никому не передавайте API Hash — это как пароль. Утечка позволяет чужому коду действовать от имени вашего приложения.
Короткая таблица параметров
| Параметр | Описание | Пример |
|---|---|---|
| API ID | Числовой идентификатор приложения | 611335 |
| API Hash | Строка для подписи запросов | a3406de8d171bb422bb6ddf3bbd800e2 |
| Client ID (Short name) | Короткое имя приложения | myandroidtg |
Как вставить в Android-проект (примеры)
- TDLib (Java/Kotlin):
TdApi.TdlibParameters params = new TdApi.TdlibParameters();
params.apiId = 123456; // ваш API ID
params.apiHash = "YOUR_API_HASH";
params.systemLanguageCode = "ru";
params.deviceModel = "MyApp";
-
Форк официального клиента: замените значения в конфигурации (например, BuildVars) — APP_ID и APP_HASH.
-
Userbot vs Bot:
- Bot API: нужен только токен бота (API ID не требуется).
- Userbot (MTProto): обязателен API ID/Hash.
При тестах используйте отдельный аккаунт и отдельные ключи — так проще избежать блокировок и смешивания логов.
Частые ошибки
- AUTH_KEY_UNREGISTERED — неверный API ID/Hash: проверьте соответствие и отсутствие лишних пробелов.
- FloodWait — превышение лимитов: уменьшите частоту запросов, используйте delay и очереди.
- App title/Short name уже заняты — измените имя.
- Потерянный API Hash — придётся зарегистрировать новое приложение.
FAQ
- Нужно ли Client ID для Bot API?
- Нет. Bot API использует токен бота, API ID/Hash не применимы.
- Можно ли использовать чужой API ID/Hash?
- Нет. Это нарушение: чужие ключи могут привести к блокировке и утечке ответственности.
- Где хранить API Hash в Android-проекте?
- Вне репозитория: секреты в Keystore/CI secrets, или на сервере, не в открытом коде.
Если нужно, могу подготовить пример конфигурации для вашего проекта (Gradle/BuildVars или пример инициализации TDLib).