Как быстро получить и использовать 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 (пошагово)

  1. Откройте https://my.telegram.org — войдите под своим номером (лучше основной аккаунт).
  2. Перейдите в "API development tools".
  3. Заполните форму:
    • App title — название приложения.
    • Short name — короткое имя (это Client ID).
    • Platform — выберите Android.
  4. После подтверждения получите 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).