Справочник / Установка
Аккаунты и форматы сессий
Войдите в систему с помощью телефона, QR-кода или ключа аутентификации, импортируйте сеансы из Telethon, Pyrogram или Telegram Desktop и управляйте несколькими учётными записями.
TgWitness входит в систему как учетная запись пользователя Telegram (а не как бот) через протокол MTProto с использованием Telethon. Каждая учетная запись находится в собственном рабочем пространстве (называемом «workspace» в API и инструментах командной строки) с собственной сессией, источниками, журналом и ключом подписи.
Файлы сеансов, строки сеансов и ключи аутентификации являются средствами авторизации учетной записи: любой, кто имеет один из них, может действовать от имени этой учетной записи. Они не содержат истории сообщений.
[!ПРЕДУПРЕЖДЕНИЕ] Не используйте то, что вы не можете себе позволить потерять. Мы настоятельно не рекомендуем подключать личные или иные ценные учетные записи, а также создавать API-идентификатор / API-хэш на учетной записи, которая для вас важна. Дело не в том, что TgWitness не прошел тестирование: Telegram неожиданно ограничивает доступ и навсегда блокирует аккаунты — при объёме запросов, который он считает чрезмерным, независимо от клиента или цели, без надлежащей документации. Многие блокировки неподдаются отмене. Используйте специальные аккаунты. Бесперебойное проведение тестов зависит от Telegram, а не от программного обеспечения, и не гарантирует ничего на будущее.
- Краткий обзор
- Прежде чем начать: идентификатор API и хеш API
- Номер телефона · QR-код · Ключ аутентификации + идентификатор DC
- Файлы учетных записей: Telethon .session · Pyrogram .session · Пара «сессия + JSON» · TData · StringSession · JSON-файл учетной записи
- Определите, чем вы располагаете · Неподдерживаемые форматы
- Наличие нескольких учётных записей · Обеспечение безопасности файлов учетных записей · Устранение неполадок
Краткий обзор#
| Что у вас есть | Вкладка «Добавить аккаунт» | Вам также понадобятся |
|---|---|---|
| Номер телефона и доступ к кодам входа в систему | Телефон | Пароль двухфакторной аутентификации (2FA), если она включена |
| Telegram открыт на другом устройстве | QR-код | Пароль двухфакторной аутентификации (2FA), если она включена |
Файл .session (Telethon или Pyrogram) |
Файлы | Дополнительный файл JSON с настройками приложения |
.session + .json с одинаковым названием |
Файлы (выберите оба) | Обычно ничего больше |
Папка «tdata» в Telegram Desktop |
Файлы (в формате ZIP) | Локальный пароль для настольной версии, если он установлен |
StringSession Telethon (текст, .txt, .tgwitness-session) |
Файлы | Отдельная пара API не требуется |
.json с сессией или ключом аутентификации |
Файлы | Отдельная пара API не требуется |
| Ключ аутентификации (512 шестнадцатеричных символов) и его номер DC | Ключ аутентификации | Необязательный идентификатор пользователя |
TgWitness распознает файлы по их содержимому, а не по именам. Переименование файла никогда не приводит к его преобразованию.
Прежде чем начать: идентификатор API и хеш API#
Вы можете войти в систему без создания приложения Telegram API. Если пара не введена,
не импортирована или уже не сохранена в рабочей области, TgWitness выбирает пару из встроенного пула,
состоящего из 50 общедоступных пар API (tgwitness/api_pool.py), в случайном порядке. Если Telegram отклоняет пару
(API_ID_INVALID, API_ID_PUBLISHED_FLOOD, UPDATE_APP_TO_LOGIN), пробуется следующая,
до восьми раз за один вход в систему; отклоненные пары пропускаются до перезапуска. Пара, с помощью которой был осуществлен вход,
сохраняется вместе с учётной записью и повторно используется для неё. Идентификатор API и хэш API идентифицируют приложение в Telegram; они
сами по себе не авторизуют учётную запись.
Если вы предпочитаете использовать собственное приложение (в этом случае риску подвергается учетная запись, на которой оно зарегистрировано; см. раздел «Зачем нужен встроенный пул API?»):
- Откройте сайт my.telegram.org и войдите, указав любой номер телефона, который принадлежит вам. Код приходит в приложение Telegram, а не в виде SMS.
- Выберите инструменты для разработки API.
- Создайте приложение: укажите любое название и краткое имя (5–32 буквы), платформа — «Настольный компьютер». Поля «URL» и «Описание» можно оставить пустыми.
- Скопируйте App api_id (число) и App api_hash (32 шестнадцатеричных символа).
В панели под формой входа указаны поля «Идентификатор API» и «Хеш». Вы можете ввести одну
пару api_id:api_hash в поле «Идентификатор API», и оба поля будут заполнены. Одну пару можно
использовать для всех ваших учётных записей. После успешного входа данные сохраняются в зашифрованном виде
исключительно в данной рабочей среде и никогда не отправляются обратно в браузер.
Здесь задействованы три различных типа учетных данных:
| Секретно | Открыть | Где это находится |
|---|---|---|
| Токен панели | Веб-панель TgWitness | panel-token.txt в каталоге данных или TGWITNESS_TOKEN |
| Идентификатор API + хеш | Ничего не говорит само по себе; определяет приложение | Встроенная пара, импортированные настройки или ваше собственное приложение на сайте my.telegram.org |
| Авторизация учетной записи | Аккаунт в Telegram | Создается посредством входа с помощью телефона или QR-кода либо импортируется в качестве сеанса |
Если для доступа к Telegram требуется прокси-сервер, сначала настройте его в разделе «Аккаунт» → «Настройки» → «Настройки подключения» → «Изменить маршрут подключения».
Номер телефона#
- Откройте раздел «Аккаунт», перейдите на вкладку «Телефон» и введите номер в международном формате,
например,
+44 7700 900123. Пробелы и дефисы удаляются автоматически. - Нажмите «Продолжить». Поля «API ID» и «Хеш» можно оставить пустыми.
- Введите код, отправленный Telegram (обычно в приложение Telegram; доставка по SMS не гарантируется).
- Если для аккаунта настроена двухэтапная аутентификация, введите соответствующий пароль. Это не токен панели и не код доступа к устройству.
- Проверьте идентификатор учетной записи, отображаемый после входа в систему, а затем выберите источники.
Коды входа и пароль двухфакторной аутентификации (2FA) никогда не записываются на диск.
QR-код#
Используйте эту функцию, если учетная запись уже авторизована на телефоне или другом компьютере.
- Вкладка «QR-код» → Показать QR-код. Поля «API ID» и «Хеш» можно оставить пустыми.
- На устройстве, на котором выполнен вход: «Настройки» → «Устройства» → «Привязать настольное устройство», отсканируйте код и подтвердите.
- Введите пароль двухфакторной аутентификации (2FA) в TgWitness, если Telegram запрашивает его.
Изображение QR-кода генерируется локально. Срок действия кодов истекает; нажмите «Сгенерировать другой QR-код», чтобы повторить попытку. Блокировка панели, переключение рабочего пространства или вход под другим аккаунтом приводят к аннулированию кода, ожидающего обработки.
Ключ аутентификации + идентификатор DC#
Ключ авторизации — это исходный 256-байтовый ключ авторизации, лежащий в основе каждого сеанса Telegram, записанный в виде 512 шестнадцатеричных символов вместе с номером центра обработки данных DC 1–5.
- Вкладка «Ключ аутентификации». Вставьте полный ключ; сокращённый ключ, содержащий символ
…, не будет работать. - Выберите идентификатор DC, предоставленный вместе с ключом.
- По желанию введите идентификатор пользователя. В этом случае TgWitness откажется подключаться, если Telegram сообщит о другом аккаунте.
- Аккаунт в Press Connect.
Ключ авторизации (512 символов) не является хешем API (32 символа). Тот же ключ также можно импортировать в формате JSON; см. раздел «JSON-файл учетной записи».
Файлы учетных записей#
Откройте «Добавить аккаунт» → «Файлы» и выберите до четырёх файлов, относящихся к одному аккаунту, общим объёмом 8 MiB, затем нажмите «Подключить аккаунт».
- Файлы конвертируются в памяти на вашем сервере TgWitness. Загруженные файлы не сохраняются, архивы ZIP не распаковываются на диск, и не происходит обращения к каким-либо внешним сервисам.
- Полученный файл затем сверяется с данными Telegram. Если в файле указан идентификатор пользователя, он должен совпадать с идентификатором учетной записи, указанным в отчёте Telegram.
- Файлы, в которых описываются разные учётные записи или разные учетные данные API, отклоняются, вместо того чтобы выбрать одну из них.
- Поле «Пароль или текст сеанса» содержит поле локального пароля TData — поле для вставки StringSession и чтения файлов без входа в систему (заполняет форму без обращения к Telegram).
Телемарафон .session#
| Что это такое | База данных SQLite, создаваемая инструментами на основе Telethon, например, my_account.session |
| Признан | Таблицы sessions (вместе с dc_id, server_address, port, auth_key) и version = 7 или 8 |
| Требования | Ровно одна строка, относящаяся к авторизованной сессии; закрытая, полная база данных |
Сначала закройте программу, создавшую файл. Если рядом с ним присутствует файл my_account.session-journal или
my_account.session-wal, это означает, что база данных не завершена: откройте и
корректно закройте исходный клиент. Удаление этих вспомогательных файлов может привести к появлению повреждённой копии.
Pyrogram .session#
| Что это такое | Инструменты на основе Pyrogram, использующие базу данных SQLite, создают |
| Признан | Таблица sessions с dc_id, auth_key, test_mode, user_id, is_bot; version = 2 или 3 |
| Требования | Допускается один авторизованный сеанс пользователя в производственной сети. Сеансы ботов и тестовых распределённых центров (DC) отклоняются. |
При входе в систему сохраненный идентификатор пользователя сверяется с данными Telegram.
Пара «сессия + JSON»#
Отчёты часто предоставляются в виде двух файлов с одинаковыми именами, например,
447700900123.session и 447700900123.json. Выберите оба файла одновременно.
- На основании данных JSON TgWitness использует
app_id/api_idиapp_hash/api_hash, поэтому вам как правило, не требуется вводить учетные данные API. - Другие поля, такие как
phone,device,sdk,app_version,lang_packили сохраненный парольtwoFA, игнорируются. Если для учетной записи настроена двухфакторная аутентификация (2FA), TgWitness запрашивает её. - Сам по себе файл JSON представляет собой лишь метаданные. При отсутствии файла сеанса продолжайте с помощью входа через телефон или QR-код.
Telegram Desktop (TData)#
TData — это папка tdata приложения Telegram Desktop (кроссплатформенного
приложения с сайта desktop.telegram.org).
| Система | Местоположение по умолчанию: tdata |
|---|---|
| Windows | %APPDATA%\Telegram Desktop\tdata (портативная версия Telegram: рядом с Telegram.exe) |
| Linux | ~/.local/share/TelegramDesktop/tdata |
| macOS | ~/Library/Application Support/Telegram Desktop/tdata |
Чтобы импортировать его:
Предупреждение о параллельных сессиях. При импорте TData повторно используется ключ авторизации Telegram Desktop; он не создаёт независимый логин. Не используйте этот ключ одновременно в Desktop и TgWitness. Telegram может аннулировать авторизацию с помощью
AUTH_KEY_DUPLICATED, в результате чего обе копии станут непригодными для использования до момента нового входа в систему.Полностью закройте Desktop, включая его процесс в системном трее, и не открывайте эту копию, пока TgWitness использует импортированную сессию. Закройте программу, не выходите из системы и не отзывайте сессию: отзыв также приводит к недействительности импортированной копии. Если вам необходимо, чтобы оба клиента работали одновременно, войдите в TgWitness с помощью телефона или QR-кода, чтобы создать собственную авторизацию. Рекомендуется использовать отдельную учётную запись, однако это не гарантирует безопасность параллельного использования клонированных ключей.
Это также относится к импортированным
.sessionфайлы, текст StringSession и шестнадцатеричный код авторизационного ключа. Другие клиенты с собственными, независимо созданными авторизациями могут оставаться авторизованными. См. документацию Telegram по AUTH_KEY_DUPLICATED.
- Полностью закройте Telegram Desktop.
-
Создайте ZIP-архив, содержащий только эти два элемента из
tdata:key_datas- 16-символьный файл с расширением «
s», расположенный рядом с ним, обычно «D877F783D5D3EF8Cs»
Сжатие всей папки вместе с кэшем мультимедиа, как правило, превышает установленные ограничения (512 записей, 32 MiB в распакованном виде). 3. Выберите ZIP-файл в разделе «Файлы». Если у Telegram Desktop установлен локальный пароль, сначала введите его в поле «Пароль» или «Текст сеанса». Это не пароль двухфакторной аутентификации (2FA).
Поддерживается: один аккаунт на архив, современное хранилище key_datas/key_data0/key_data1,
локальный пароль. Не поддерживается: папки с несколькими авторизованными аккаунтами, устаревшие версии
десктопного приложения, ZIP-архивы, защищённые паролем, а также отдельное нативное приложение для macOS «Telegram для macOS».
Telethon StringSession#
Одна строка текста, обычно начинающаяся с 1 и содержащая около 350 символов. Загрузите
её в виде файла .txt или .tgwitness-session (размером не более 4 КиБ) или вставьте в поле
«Пароль» или «Текст сеанса». Принимаются только строки формата Telethon; строки Pyrogram и TDLib
используют другие форматы.
JSON-файл учетной записи#
Один объект JSON размером не более 64 КиБ в файле с расширением .json.
| Поле (псевдонимы) | Значение |
|---|---|
api_id (app_id) |
Идентификатор приложения — положительное число |
api_hash (app_hash) |
Хеш приложения, 32 шестнадцатеричных символа |
string_session (session_string, session) |
Текст StringSession для Telethon, а не имя файла |
auth_key (auth_key_hex) + dc_id |
Полный 512-символьный ключ аутентификации и DC 1–5 |
user_id (id) |
Необязательно; проверка в Telegram производится до сохранения авторизации |
Если указаны как псевдоним, так и настоящее имя, они должны совпадать. Примеры:
{ "app_id": 1234567, "app_hash": "0123456789abcdef0123456789abcdef" }
{
"api_id": 1234567,
"api_hash": "0123456789abcdef0123456789abcdef",
"auth_key": "REPLACE_WITH_ALL_512_HEXADECIMAL_CHARACTERS",
"dc_id": 2,
"user_id": 123456789
}
В первом примере заполняются только учетные данные API; войдите в систему с помощью телефона или QR-кода либо добавьте файл сеанса. Массовые списки (массив JSON с учетными записями) не принимаются.
Определите, чем вы располагаете#
| Как видите | Это | Использование |
|---|---|---|
*.session; при открытии в текстовом редакторе в верхней части отображается SQLite format 3 |
Telethon или Pyrogram SQLite | Файлы (обнаруживаются автоматически) |
Папка «tdata», содержащая файл «key_datas» |
Telegram Desktop TData | Скомпрессируйте два файла в ZIP, затем «Файлы» |
Одна строка текста, начинающаяся с 1, ~350 символов |
Telethon StringSession | Файлы |
*.json с app_id/app_hash |
Сопутствующие метаданные | Файлы вместе с данными сеанса |
*.json с auth_key или string_session |
JSON-файл учетной записи | Файлы |
512 символов 0-9a-f |
Ключ аутентификации | Ключ аутентификации |
32 символа 0-9a-f |
Хеш API | Идентификатор API + хеш |
td.binlog или db.sqlite из приложения TDLib |
Хранилище TDLib | Не поддерживается |
123456789:AA… |
Токен бота | Не поддерживается |
Неподдерживаемые форматы#
| Формат | Альтернативный вариант |
|---|---|
Хранилище TDLib (td.binlog) и экспорт данных из TDLib |
Войдите с помощью телефона или QR-кода |
| Строки сеансов Pyrogram | Используйте файл Pyrogram с кодом .session или сканируйте QR-код с телефона |
| TData с несколькими авторизованными учетными записями | Выйдите из других учётных записей в Telegram Desktop или используйте файл сеанса для каждой учётной записи отдельно |
| Токены ботов | Не поддерживается: TgWitness осуществляет мониторинг в качестве учетной записи пользователя |
| Списки многих учетных записей в форматах CSV/JSON | Импортируйте поддерживаемые файлы сессий через Аккаунты → Импорт учетных записей или войдите по номеру телефона / QR-коду в отдельных рабочих пространствах |
| Тестовые сеансы DC или сеансы с ботами | Используйте рабочую учетную запись пользователя |
Наличие нескольких учётных записей#
Нажмите кнопку «+» рядом с выбором учетной записи или откройте «Учетная запись» → «Настройки» → «Настройки подключения» → «Рабочие пространства», введите название и войдите в систему.
- Неограниченное количество рабочих пространств, включая основное. Каждое из них имеет собственную сессию, прокси- маршрут, источники, политику сбора данных, журнал, ключ подписи, контрольные точки и настройки экспорта.
- Переключение между отображаемыми рабочими пространствами не приводит к приостановке работы остальных.
- Журнал привязан к учетной записи, с которой он был создан. Для входа под другой учетной записью требуется отдельное рабочее пространство, при этом одна учетная запись не может быть привязана к двум рабочим пространствам.
- Токен главной панели управляет всеми рабочими пространствами. Предоставленный доступ позволяет ограничить доступ других пользователей к выбранным аккаунтам и чатам с помощью отдельных прав доступа и ограничений по продолжительности сеанса.
- Функция «Учётные записи» позволяет переименовать рабочую область и удалить добавленную рабочую область вместе с её сессией, журналом, источниками и ключом подписи. Главную рабочую область нельзя удалить с панели.
Массовый импорт и группы аккаунтов#
Откройте Аккаунты → Импорт учетных записей, чтобы добавить несколько аккаунтов, объединить файлы по имени и увидеть результат каждого входа. Для каждого аккаунта создаётся отдельное рабочее пространство. Группы позволяют копировать выбранные настройки из образца без объединения сессий, ключей и доказательств. См. руководство по импорту и группам и панель пула MTProxy.
Выйти#
«Учётная запись» → «Выйти из Telegram» (с приостановкой наблюдения) отправляет запрос в Telegram на завершение сеанса, в результате чего он также исчезает из раздела «Настройки» → «Устройства» данной учётной записи и удаляется из хранилища рабочего пространства. Журнал, источники, настройки и ключ подписи сохраняются, и в журнале фиксируется факт выхода из системы. Рабочая область по-прежнему принадлежит данной учетной записи: только эта учетная запись может подключиться к ней повторно. Если Telegram не отвечает, сессия всё равно удаляется здесь, и на панели отображается соответствующее сообщение; завершите её в Telegram в разделе «Настройки» → «Устройства».
Конвертировать сессию Telethon в автономном режиме#
Панель напрямую импортирует файлы формата .session. Для автономного преобразования в файл
StringSession выполните из папки проекта следующую команду:
.venv\Scripts\python.exe -m tgwitness.sessions account.session --out account.tgwitness-session # Windows
.venv/bin/python -m tgwitness.sessions account.session --out account.tgwitness-session # Linux/macOS
Конвертер поддерживает только формат Telethon SQLite (объёмом до 64 MiB), никогда не изменяет исходные данные, не отправляет сетевых запросов и не перезаписывает существующий выходной файл.
Обеспечение безопасности файлов учетных записей#
- Относитесь к каждому
.session, TData ZIP, StringSession, Auth Key и JSON-файлу учетной записи как к паролю. TgWitness хранит импортированные данные авторизации в зашифрованном хранилище; вы можете удалить исходные файлы впоследствии. - Не запускайте одну и ту же авторизацию одновременно в двух программах. Telegram может отозвать её
(
AUTH_KEY_DUPLICATED), и обе копии перестанут работать. - Сеанс, срок действия которого истек или который был отозван, не может быть восстановлен посредством преобразования. Войдите в систему заново.
Устранение неполадок#
| Сообщение или признак | Что делать |
|---|---|
| Не удаётся прочитать данную сессию. Закройте исходный клиент… | Файл SQLite открыт или не завершен (файл-сайдкар -journal/-wal). Корректно закройте исходную программу и скопируйте файл заново. |
| Поддерживаемые схемы базы данных Telethon SQLite: 7 и 8 / Pyrogram … 2 и 3 | Файл был создан с использованием очень старой или неизвестной версии библиотеки. Вместо этого войдите в систему с помощью телефона или QR-кода. |
| Поддерживаются только авторизованные сеансы пользователей в производственной среде | Файл Pyrogram принадлежит боту или тестовой сети. |
| Архив TData превышает 512 записей или 32 МиБ | В ZIP-архив следует включить только файлы key_datas и D877F783D5D3EF8Cs, а не всю папку. |
| Не удаётся расшифровать TData. Проверьте локальный пароль на рабочем столе | Введите локальный пароль Telegram Desktop в поле «Пароль» или «Текст сеанса». |
| Импортируйте по одной учетной записи TData за раз | В Telegram Desktop было несколько учётных записей; см. раздел «Неподдерживаемые форматы». |
| Выбранные файлы содержат информацию о различных учетных записях или учетных данных API | Выберите файлы только из одной учетной записи. |
| Файл JSON не содержит учетных данных или авторизационных данных для поддерживаемых API | Проверьте названия полей в JSON-файле учетной записи. |
| Только метаданные API | В JSON отсутствует сессия. Добавьте файл .session или воспользуйтесь номером телефона/QR-кодом. |
| HEX-код авторизационного ключа должен содержать все 512 шестнадцатеричных символов | Ключ усечён или содержит символы «…». |
| Идентификатор учетной записи не совпадает с импортированной учетной записью | Идентификатор пользователя в файле отличается от того, который указывает Telegram; данный файл относится к другому аккаунту. |
| Данный аккаунт уже принадлежит другому рабочему пространству | Откройте эту рабочую область вместо того, чтобы добавлять аккаунт дважды. |
| Ссылка работает, однако в списке чатов в разделе «Источники» отсутствует закрытая группа | Проверьте членство. Программа анализирует первые 1 000 диалогов; увеличьте этот лимит в разделе «Параметры». |
| Ошибка подключения через прокси | Проверьте режим маршрутизации и режим IP. Автоматический режим MTProxy пробует другой рабочий вход. Режим «Скрытие IP» ожидает; явно выбранный резервный режим может установить соединение напрямую после настроенной задержки. См. режимы маршрутизации. |
См. также: подключение и безопасность прокси-серверов и шифрования, а также принципы сбора данных, которые фиксируются после входа в систему.