Files
TG_autoposter/TELETHON_AUTHORIZATION_GUIDE.md
Andrew K. Choi 5a00e161e6 🔐 Add Telethon session initialization tools and authorization guide
NEW FILES:
 init_telethon_session.py - Interactive Python script for session initialization
 init_telethon_session.sh - Bash wrapper for Docker-based authorization
 TELETHON_AUTHORIZATION_GUIDE.md - Comprehensive authorization guide
 USERBOT_AUTHORIZATION_README.md - Quick start guide for users

FEATURES:
 Interactive authorization flow with SMS code verification
 2FA password support
 Session persistence to app/sessions/
 Docker container integration
 Verification of existing sessions
 Clear error messages and troubleshooting

USAGE:
$ ./init_telethon_session.sh
Or:
$ python3 init_telethon_session.py

This solves the UserBot authorization issue where Telethon requires
interactive SMS code verification on first setup.
2025-12-21 12:12:22 +09:00

7.2 KiB
Raw Permalink Blame History

🔐 Telethon UserBot Authorization Guide

Проблема

При запуске UserBot контейнера видите ошибку:

❌ UserBot не авторизован. Требуется повторный вход.
📲 Необходимо авторизироваться вручную через интерфейс.

Это нормально! Telethon требует двухфакторной авторизации при первом запуске.


Решение: Авторизация на локальной машине

Шаг 1: Инициализировать сессию локально

# Перейти в директорию проекта
cd /home/trevor/dev/TG_autoposter

# Запустить скрипт инициализации
python3 init_telethon_session.py

Шаг 2: Следовать указаниям скрипта

Скрипт попросит:

📝 Enter the SMS code: [введите код из SMS]
  1. Вы получите SMS с кодом подтверждения на номер +821056936103
  2. Введите полученный код
  3. Если включена 2FA, введите пароль двухфакторной аутентификации

Шаг 3: Проверить авторизацию

# Проверить, что сессия корректна
python3 init_telethon_session.py --verify

Должно вывести:

✅ Session is valid!
   User: Your Name (@username)
   ID: 123456789

Шаг 4: Перезагрузить контейнер

# Перезагрузить UserBot контейнер
docker-compose restart userbot

# Проверить логи
docker-compose logs userbot -f

Теперь должны увидеть:

✅ UserBot инициализирован: Your Name (@username)
🔄 UserBot готов к обработке задач

📁 Файлы сессии

После авторизации появятся файлы:

app/sessions/
├── userbot_session.session         (основной файл сессии)
└── telethon_string_session.txt     (резервная копия)

⚠️ Важно: Никогда не выкладывайте эти файлы в публичные репозитории!

Добавить в .gitignore

# Убедитесь, что файлы сессии в .gitignore:
echo "app/sessions/" >> .gitignore
echo "sessions/" >> .gitignore

🐳 Использование в Docker

Вариант 1: Копировать сессию в контейнер

# После авторизации, скопировать файлы в контейнер
docker cp app/sessions/ tg_autoposter_userbot:/app/

# Перезагрузить
docker-compose restart userbot

Вариант 2: Монтировать том

Отредактировать docker-compose.yml:

services:
  userbot:
    # ... остальная конфигурация ...
    volumes:
      - ./app/sessions:/app/app/sessions
      - ./app:/app/app

Затем:

docker-compose up -d userbot

Вариант 3: Авторизовать внутри контейнера

# Запустить контейнер в интерактивном режиме
docker-compose run --rm userbot python3 init_telethon_session.py

# Введите SMS код и пароль 2FA при запросе

⚠️ Решение проблем

Проблема: "Invalid API credentials"

❌ Invalid API credentials (400): SESSION_PASSWORD_NEEDED

Решение: Проверьте TELETHON_API_ID и TELETHON_API_HASH в .env

  • Получите их на https://my.telegram.org
  • Убедитесь что используете правильное сочетание

Проблема: "Flood Wait" ошибка

❌ Flood Wait X seconds

Решение: Подождите X секунд перед попыткой снова

Проблема: "PHONE_NUMBER_UNOCCUPIED"

❌ PHONE_NUMBER_UNOCCUPIED

Решение: Номер телефона не связан с аккаунтом Telegram. Проверьте номер в .env

Проблема: "Session not found"

❌ Session file not found

Решение: Запустите скрипт инициализации снова


🔄 Автоматизация при развёртывании

Для CI/CD пайплайна можно создать скрипт:

#!/bin/bash
# deploy.sh

# Проверить наличие сессии
if [ ! -f "app/sessions/userbot_session.session" ]; then
    echo "⚠️  Telethon session not found!"
    echo "📋 Run: python3 init_telethon_session.py"
    exit 1
fi

# Запустить контейнеры
docker-compose up -d

echo "✅ Deployment complete!"

📊 Проверка статуса

Проверить авторизацию в контейнере

# Запустить проверку в контейнере
docker-compose exec userbot python3 init_telethon_session.py --verify

Просмотреть логи инициализации

# Логи UserBot
docker-compose logs userbot -f

# Логи основного бота (использует UserBot)
docker-compose logs bot -f

Проверить файлы сессии

# Список файлов
ls -la app/sessions/

# Размер файла (должен быть > 100 bytes)
stat app/sessions/userbot_session.session

🎯 Следующие шаги

После успешной авторизации:

  1. UserBot контейнер будет работать без ошибок
  2. Нажмите "🤖 UserBot" в меню бота
  3. Используйте "📥 Собрать группы" для сбора информации
  4. Используйте "👥 Собрать участников" для парсинга членов группы

💡 Дополнительно

Просмотр информации о сессии

python3 -c "
import json
from telethon.sessions import SQLiteSession

session = SQLiteSession('app/sessions/userbot_session')
print(f'Session ID: {session.id}')
print(f'Auth Key Available: {bool(session.auth_key)}')
"

Удалить старую сессию

rm -rf app/sessions/
mkdir -p app/sessions

# Затем повторить инициализацию
python3 init_telethon_session.py

🆘 Техническая поддержка

Если возникают проблемы:

  1. Проверьте файл .env:

    grep -E "TELETHON|TELEGRAM_BOT" .env
    
  2. Проверьте логи скрипта:

    python3 init_telethon_session.py 2>&1 | tee init.log
    
  3. Проверьте интернет-соединение и доступ к Telegram

  4. Убедитесь что используется правильный номер телефона


Статус: Руководство готово
Последнее обновление: 2025-12-21