вот скрипт
"""
Пример авторизации в Telegram через Telethon (2025-2026)
Используйте этот скрипт для первичной авторизации
"""
import asyncio
from telethon import TelegramClient
from telethon.errors import SessionPasswordNeededError
# ==================== НАСТРОЙКИ ====================
# Получите эти данные на https://my.telegram.org/apps
API_ID = 12345678 # Замените на свой API ID
API_HASH = 'your_api_hash_here' # Замените на свой API Hash
PHONE = '+1234567890' # Замените на свой номер в формате +1234567890
# ==================================================
async def authorize():
"""Функция авторизации в Telegram"""
# Создаем клиент с параметрами устройства
# Эти параметры помогают Telegram корректно отправить код авторизации
client = TelegramClient(
'my_session', # Имя файла сессии (будет создан .session файл)
API_ID,
API_HASH,
device_model="Desktop", # Модель устройства
system_version="Windows 10", # Версия ОС
app_version="1.0", # Версия приложения
lang_code="ru", # Язык интерфейса
system_lang_code="ru-RU" # Системный язык
)
try:
print("\n[1] Подключение к Telegram...")
await client.start(phone=PHONE)
# Если авторизация успешна, получаем информацию о пользователе
me = await client.get_me()
print("\n" + "=" * 70)
print("✓ АВТОРИЗАЦИЯ УСПЕШНА!")
print("=" * 70)
print(f"Имя: {me.first_name} {me.last_name or ''}")
print(f"Username: @{me.username if me.username else 'не установлен'}")
print(f"ID: {me.id}")
print(f"Телефон: {me.phone}")
print("=" * 70)
print(f"\nСессия сохранена в файл: my_session.session")
print("Теперь код больше не потребуется при следующих запусках")
except SessionPasswordNeededError:
print("\n⚠ У аккаунта включена двухфакторная аутентификация (2FA)")
password = input("Введите пароль облачного доступа: ")
await client.sign_in(password=password)
me = await client.get_me()
print(f"\n✓ Авторизация успешна! Вы вошли как: {me.first_name}")
except Exception as e:
print(f"\n✗ Ошибка при авторизации: {e}")
import traceback
traceback.print_exc()
finally:
await client.disconnect()
print("\n✓ Отключено от Telegram")
if __name__ == '__main__':
print("\n")
print("╔════════════════════════════════════════════════════════════════════╗")
print("║ TELEGRAM AUTHORIZATION EXAMPLE ║")
print("╚════════════════════════════════════════════════════════════════════╝")
print("\nПЕРЕД ЗАПУСКОМ:")
print(" 1. Получите API ID и API Hash на https://my.telegram.org/apps")
print(" 2. Укажите их в переменных API_ID и API_HASH")
print(" 3. Укажите свой номер телефона в переменной PHONE")
print("\nПРИ ЗАПУСКЕ:")
print(" → Введите код из SMS или Telegram приложения")
print(" → Код придет в: Настройки → Устройства или SMS")
print(" → Если код не приходит - выйдите из Telegram на одном устройстве")
print("\nСОВЕТЫ:")
print(" • Удалите файл my_session.session перед повторной авторизацией")
print(" • Не запрашивайте код слишком часто - это приведет к блокировке")
print(" • Проверьте что API ключи созданы для правильного номера телефона")
print("")
# Решение проблемы с получением кода авторизации в Telegram
## Проблема
При авторизации через Telethon/Pyrogram код не приходит ни в SMS, ни в приложение Telegram.
## Причины
### 1. API ключи привязаны к другому номеру
- API ID и API Hash создаются на https://my.telegram.org
- Они привязываются к номеру, которым вы были залогинены при их создании
- **Решение**: Используйте тот же номер для авторизации или создайте новые API ключи
### 2. Telegram блокирует отправку кода
- При частых запросах кода Telegram может временно заблокировать отправку
- **Решение**: Подождите 30-60 минут перед повторной попыткой
### 3. Недостаточно параметров устройства
- Telegram требует информацию об устройстве для отправки кода
- **Решение**: Добавьте параметры устройства в TelegramClient
## Решение (работает в 2025-2026)
### Шаг 1: Добавьте параметры устройства
```python
from telethon import TelegramClient
client = TelegramClient(
'session_name',
api_id=YOUR_API_ID,
api_hash='YOUR_API_HASH',
device_model="Desktop", # Модель устройства
system_version="Windows 10", # Версия ОС
app_version="1.0", # Версия приложения
lang_code="ru", # Язык
system_lang_code="ru-RU" # Системный язык
)
```
### Шаг 2: Выйдите из Telegram на одном устройстве
- Откройте Telegram на телефоне
- Зайдите в **Настройки → Устройства**
- Завершите одну из активных сессий
- Это помогает Telegram отправить код на новое устройство
### Шаг 3: Удалите старые файлы сессии
```bash
# Windows PowerShell
Remove-Item -Path "*.session" -Force
# Linux/Mac
rm -f *.session
```
### Шаг 4: Запустите скрипт заново
После добавления параметров устройства код должен прийти в:
- Приложение Telegram (раздел "Устройства")
- SMS на указанный номер
- Или через звонок
## Проверка API ключей
1. Зайдите на https://my.telegram.org
2. Проверьте каким номером вы залогинены
3. Перейдите в "API development tools"
4. Убедитесь что API ID и Hash верные
5. Если нужен другой номер - разлогиньтесь и войдите нужным номером
## Дополнительные советы
### Если код всё равно не приходит:
1. **Проверьте номер телефона** - формат должен быть: `XXXXXXXXX`
2. **Проверьте что аккаунт не заблокирован** - попробуйте зайти через официальное приложение
3. **Подождите** - Telegram может временно ограничивать отправку кодов
4. **Используйте другой API ID** - возможно текущий заблокирован
- **НЕ запрашивайте код слишком часто** - это приведет к временной блокировке
- **Используйте официальные API ключи** - самостоятельно созданные на my.telegram.org
- **Не используйте тестовые API ключи** из примеров кода - они не работают для production
## Итоговый рабочий код
```python
from telethon import TelegramClient
import asyncio
"""
Пример авторизации в Telegram через Telethon (2025-2026)
Используйте этот скрипт для первичной авторизации
"""
import asyncio
from telethon import TelegramClient
from telethon.errors import SessionPasswordNeededError
# ==================== НАСТРОЙКИ ====================
# Получите эти данные на https://my.telegram.org/apps
API_ID = 12345678 # Замените на свой API ID
API_HASH = 'your_api_hash_here' # Замените на свой API Hash
PHONE = '+1234567890' # Замените на свой номер в формате +1234567890
# ==================================================
async def authorize():
"""Функция авторизации в Telegram"""
print("=" * 70)
print("АВТОРИЗАЦИЯ В TELEGRAM")
print("=" * 70)
print(f"API ID: {API_ID}")
print(f"Телефон: {PHONE}")
print("=" * 70)
# Создаем клиент с параметрами устройства
# Эти параметры помогают Telegram корректно отправить код авторизации
client = TelegramClient(
'my_session', # Имя файла сессии (будет создан .session файл)
API_ID,
API_HASH,
device_model="Desktop", # Модель устройства
system_version="Windows 10", # Версия ОС
app_version="1.0", # Версия приложения
lang_code="ru", # Язык интерфейса
system_lang_code="ru-RU" # Системный язык
)
try:
print("\n[1] Подключение к Telegram...")
await client.start(phone=PHONE)
# Если авторизация успешна, получаем информацию о пользователе
me = await client.get_me()
print("\n" + "=" * 70)
print("✓ АВТОРИЗАЦИЯ УСПЕШНА!")
print("=" * 70)
print(f"Имя: {me.first_name} {me.last_name or ''}")
print(f"Username: @{me.username if me.username else 'не установлен'}")
print(f"ID: {me.id}")
print(f"Телефон: {me.phone}")
print("=" * 70)
print(f"\nСессия сохранена в файл: my_session.session")
print("Теперь код больше не потребуется при следующих запусках")
except SessionPasswordNeededError:
print("\n⚠ У аккаунта включена двухфакторная аутентификация (2FA)")
password = input("Введите пароль облачного доступа: ")
await client.sign_in(password=password)
me = await client.get_me()
print(f"\n✓ Авторизация успешна! Вы вошли как: {me.first_name}")
except Exception as e:
print(f"\n✗ Ошибка при авторизации: {e}")
import traceback
traceback.print_exc()
finally:
await client.disconnect()
print("\n✓ Отключено от Telegram")
if __name__ == '__main__':
print("\n")
print("╔════════════════════════════════════════════════════════════════════╗")
print("║ TELEGRAM AUTHORIZATION EXAMPLE ║")
print("╚════════════════════════════════════════════════════════════════════╝")
print("\nПЕРЕД ЗАПУСКОМ:")
print(" 1. Получите API ID и API Hash на https://my.telegram.org/apps")
print(" 2. Укажите их в переменных API_ID и API_HASH")
print(" 3. Укажите свой номер телефона в переменной PHONE")
print("\nПРИ ЗАПУСКЕ:")
print(" → Введите код из SMS или Telegram приложения")
print(" → Код придет в: Настройки → Устройства или SMS")
print(" → Если код не приходит - выйдите из Telegram на одном устройстве")
print("\nСОВЕТЫ:")
print(" • Удалите файл my_session.session перед повторной авторизацией")
print(" • Не запрашивайте код слишком часто - это приведет к блокировке")
print(" • Проверьте что API ключи созданы для правильного номера телефона")
print("")
asyncio.run(authorize())