Referência / Configuração
Formatos de contas e sessões
Faça login por telefone, código QR ou chave de autenticação, importe sessões do Telethon, Pyrogram ou Telegram Desktop e gerencie várias contas.
O TgWitness faz login como uma conta de usuário do Telegram (não como um bot) via MTProto, utilizando o Telethon. Cada conta ocupa seu próprio espaço de trabalho (denominado “workspace” na API e nas ferramentas de linha de comando) com sua própria sessão, fontes, registro e chave de assinatura.
Arquivos de sessão, strings de sessão e chaves de autenticação são autorizações de conta: quem possuir uma delas poderá agir em nome dessa conta. Eles não contêm histórico de mensagens.
[!AVISO] Não utilize nada que o senhor não possa se dar ao luxo de perder. Recomendamos veementemente que não conecte contas pessoais ou de qualquer outra forma valiosas, nem crie um ID de API / hash de API em uma conta que o senhor valorize. Não se trata de o TgWitness não ter sido testado: o Telegram restringe e bane permanentemente contas de forma imprevisível — para volumes de solicitações que ele considere excessivos, independentemente do cliente ou da finalidade, sem documentação adequada. Muitos banimentos são irreversíveis. Utilize contas dedicadas. O bom andamento dos testes depende do Telegram, não do software, e não garante nada para o futuro.
- Visão geral
- Antes de começar: ID da API e hash da API
- Número de telefone · Código QR · Chave de Autenticação + ID do DC
- Arquivos de contas: Telethon .session · Pyrogram .session · Par de sessão + JSON · TData · StringSession · JSON da conta
- Identifique o que o senhor possui · Formatos não suportados
- Várias contas · Mantendo os arquivos de contas em segurança · Solução de problemas
Visão geral#
| O que o senhor tem | Guia em “Adicionar conta” | Você também precisará de |
|---|---|---|
| O número de telefone e o acesso aos seus códigos de login | Telefone | Senha de autenticação de duas etapas (2FA), caso esteja ativada |
| Telegram aberto em outro dispositivo | Código QR | Senha de autenticação de duas etapas (2FA), caso esteja ativada |
Um arquivo .session (Telethon ou Pyrogram) |
Arquivos | Arquivo JSON complementar opcional para configurações do aplicativo |
.session + .json com o mesmo nome |
Arquivos (selecione ambos) | Normalmente, nada mais |
Uma pasta “tdata” no Telegram Desktop |
Arquivos (em formato ZIP) | A senha local do Desktop, caso tenha sido definida |
Uma StringSession do Telethon (texto, .txt, .tgwitness-session) |
Arquivos | Não é necessário um par de APIs separado |
Um .json com uma sessão ou chave de autenticação |
Arquivos | Não é necessário um par de APIs separado |
| Uma chave de autenticação (512 caracteres hexadecimais) e seu número DC | Chave de autenticação | ID de usuário opcional |
O TgWitness reconhece os arquivos pelo seu conteúdo, e não pelos nomes. Renomear um arquivo nunca o converte.
Antes de começar: ID da API e hash da API#
É possível fazer login sem criar um aplicativo da API do Telegram. Quando nenhum par for inserido,
importado ou já estiver salvo no espaço de trabalho, o TgWitness seleciona um par de seu conjunto integrado de
50 pares de API públicos (tgwitness/api_pool.py) em ordem aleatória. Se o Telegram recusar um par
(API_ID_INVALID, API_ID_PUBLISHED_FLOOD, UPDATE_APP_TO_LOGIN), o próximo será tentado,
até um máximo de oito por login; os pares recusados são ignorados até a reinicialização. O par utilizado no login é
salvo com a conta e reutilizado para ela. Um ID de API e um hash de API identificam o aplicativo perante o Telegram; eles
não autorizam uma conta por si só.
Para utilizar seu próprio aplicativo (a conta que o registra é a que corre risco; consulte “Por que um conjunto de APIs integrado?”):
- Acesse my.telegram.org e faça login com qualquer número de telefone de sua propriedade. O código é enviado pelo aplicativo do Telegram, e não por SMS.
- Escolha as ferramentas de desenvolvimento de API.
- Crie um aplicativo: qualquer título e nome abreviado (5 a 32 letras), plataforma Desktop. O URL e a descrição podem ficar em branco.
- Copie o api_id do aplicativo (um número) e o api_hash do aplicativo (32 caracteres hexadecimais).
No painel, os campos “ID da API” e “Hash” estão localizados abaixo do formulário de login. É possível colar um único
par api_id:api_hash no campo “ID da API” e ambos os campos serão preenchidos. Um único par pode ser
utilizado para todas as suas contas. Após um login bem-sucedido, ele é salvo, criptografado,
exclusivamente nesse espaço de trabalho e nunca é enviado de volta ao navegador.
Estão envolvidas três credenciais diferentes:
| Secreto | Abrir | Onde está disponível |
|---|---|---|
| Token do painel | O painel web do TgWitness | panel-token.txt no diretório de dados, ou TGWITNESS_TOKEN |
| ID da API + hash | Nada por si só; identifica o aplicativo | Emparelhamento integrado, configurações importadas ou seu próprio aplicativo em my.telegram.org |
| Autorização de conta | A conta no Telegram | Criado por meio de login por telefone/QR ou importado como uma sessão |
Caso seja necessário acessar o Telegram por meio de um proxy, configure-o primeiro em Conta → Configurações → Configurações de conexão → Alterar rota de conexão.
Número de telefone#
- Abra a conta, acesse a guia “Telefone” e insira o número no formato internacional,
por exemplo,
+44 7700 900123. Espaços e traços são removidos automaticamente. - Clique em “Continuar”. Os campos “ID da API” e “Hash” podem permanecer em branco.
- Insira o código enviado pelo Telegram (geralmente para o aplicativo do Telegram; o envio por SMS não é garantido).
- Caso a conta possua verificação em duas etapas, digite essa senha. Não se trata do token do painel nem da senha do dispositivo.
- Verifique o ID da conta exibido após o login e, em seguida, selecione as fontes.
Os códigos de login e a senha de autenticação de duas etapas (2FA) nunca são gravados no disco.
Código QR#
Utilize esta opção quando a conta já estiver conectada em um celular ou em outro computador.
- Guia “Código QR” → Mostrar código QR. O campo “ID da API + Hash” pode permanecer em branco.
- No dispositivo em que está conectado: Configurações → Dispositivos → Vincular dispositivo de desktop, escaneie o código e confirme.
- Insira a senha de autenticação de duas etapas (2FA) no TgWitness caso o Telegram a solicite.
A imagem do QR é gerada localmente. Os códigos expiram; clique em “Gerar outro código QR” para tentar novamente. Bloquear o painel, alternar de área de trabalho ou iniciar outro login cancela um código pendente.
Chave de Autenticação + ID do DC#
Uma Chave de Autorização (Auth Key) é a autorização bruta de 256 bytes por trás de cada sessão do Telegram, representada por 512 caracteres hexadecimais, juntamente com o número do centro de dados DC 1–5.
- Guia “Chave de autenticação”. Cole a chave completa; uma chave abreviada que contenha “
…” não funcionará. - Selecione o DC ID fornecido com a chave.
- Opcionalmente, insira o ID do usuário. O TgWitness recusará a conexão caso o Telegram identifique uma conta diferente.
- Conta no Press Connect.
Uma chave de autenticação (512 caracteres) não é um hash de API (32 caracteres). A mesma chave também pode ser importada como JSON; consulte JSON da conta.
Arquivos de contas#
Abra “Adicionar conta” → “Arquivos” e selecione até quatro arquivos pertencentes a uma conta, totalizando 8 MiB; em seguida, pressione “Conectar conta”.
- Os arquivos são convertidos na memória do seu servidor TgWitness. Os arquivos enviados não são armazenados, os arquivos ZIP não são extraídos para o disco e nenhum serviço externo é acionado.
- A sessão resultante é então verificada com o Telegram. Se um arquivo indicar um ID de usuário, ele deverá corresponder à conta informada pelo Telegram.
- Arquivos que descrevem contas diferentes ou credenciais de API diferentes são rejeitados em vez de selecionar apenas uma.
- O campo “Senha ou texto da sessão” contém o campo de senha local do TData, um campo para colar um StringSession e ler arquivos sem fazer login (preenche o formulário sem entrar em contato com o Telegram).
Telethon .session#
| O que é | O banco de dados SQLite que as ferramentas baseadas no Telethon criam, por exemplo, my_account.session |
| Reconhecido por | Tabelas sessions (com dc_id, server_address, port, auth_key) e version = 7 ou 8 |
| Requisitos | Exatamente uma linha de sessão autorizada; um banco de dados fechado e completo |
Feche primeiro o programa que criou o arquivo. Se my_account.session-journal ou
my_account.session-wal estiverem presentes ao lado dele, o banco de dados não está finalizado: abra e
feche o cliente original corretamente. A exclusão desses arquivos sidecar pode deixar uma cópia corrompida.
Pyrogram .session#
| O que é | As ferramentas baseadas no Pyrogram criam um banco de dados SQLite |
| Reconhecido por | Tabela sessions com dc_id, auth_key, test_mode, user_id, is_bot; version = 2 ou 3 |
| Requisitos | Uma sessão de usuário autorizado na rede de produção. Sessões de bots e de servidores de dados de teste (DC) são rejeitadas |
O ID do usuário armazenado é verificado no Telegram durante o login.
Par de sessão + JSON#
As contas costumam ser distribuídas como dois arquivos com o mesmo nome, por exemplo,
447700900123.session e 447700900123.json. Selecione ambos de uma só vez.
- A partir do JSON, o TgWitness utiliza
app_id/api_ideapp_hash/api_hash, de modo que normalmente não é necessário digitar credenciais da API. - Outros campos, como
phone,device,sdk,app_version,lang_packou uma senhatwoFAarmazenada, são ignorados. Caso a conta possua autenticação de dois fatores (2FA), o TgWitness solicita que ela seja fornecida. - Um arquivo JSON por si só é apenas metadados. Sem o arquivo de sessão, prossiga com o login por telefone ou QR.
Telegram Desktop (TData)#
TData é a pasta tdata do aplicativo Telegram Desktop (o aplicativo multiplataforma
disponível em desktop.telegram.org).
| Sistema | Localização padrão do tdata |
|---|---|
| Windows | %APPDATA%\Telegram Desktop\tdata (Telegram portátil: ao lado do Telegram.exe) |
| Linux | ~/.local/share/TelegramDesktop/tdata |
| macOS | ~/Library/Application Support/Telegram Desktop/tdata |
Para importá-lo:
Aviso sobre sessões paralelas. A importação de TData reutiliza a chave de autorização do Telegram Desktop; ela não cria um login independente. Não utilize essa chave no Desktop e no TgWitness simultaneamente. O Telegram pode invalidar a autorização com
AUTH_KEY_DUPLICATED, tornando ambas as cópias inutilizáveis até um novo login.Encerre totalmente o Desktop, incluindo seu processo na bandeja do sistema, e mantenha essa cópia fechada enquanto o TgWitness utiliza a sessão importada. Encerre a sessão, não faça logout nem revogue a sessão: a revogação também invalida a cópia importada. Caso precise que ambos os clientes estejam em execução, faça login no TgWitness por telefone ou QR para criar sua própria autorização. Recomenda-se uma conta dedicada, mas isso não torna as chaves clonadas seguras para uso em paralelo.
Isso também se aplica a arquivos importados
.session, ao texto da StringSession e à chave de autenticação HEX. Outros clientes com suas próprias autorizações criadas de forma independente podem permanecer conectados. Consulte a documentação do Telegram sobre AUTH_KEY_DUPLICATED.
- Encerre completamente o Telegram Desktop.
-
Crie um arquivo ZIP contendo apenas estes dois itens do
tdata:key_datas- o arquivo de 16 caracteres que termina em
sao lado dele, geralmenteD877F783D5D3EF8Cs
Compactar a pasta inteira com seu cache de mídia geralmente excede os limites (512 entradas, 32 MiB descompactados). 3. Selecione o arquivo ZIP em “Arquivos”. Se o Telegram Desktop tiver uma senha local, insira-a primeiro no campo “Senha” ou “Texto da sessão”. Essa não é a senha da autenticação de dois fatores (2FA).
Compatível: uma conta por arquivo, armazenamento moderno key_datas/key_data0/key_data1,
senha local. Não compatível: pastas com várias contas conectadas, layouts mais antigos da versão para desktop,
arquivos ZIP protegidos por senha e o aplicativo nativo separado para macOS “Telegram para macOS”.
Telethon StringSession#
Uma única linha de texto, geralmente começando com 1 e com cerca de 350 caracteres. Carregue-
a como um arquivo .txt ou .tgwitness-session (no máximo 4 KiB) ou cole-a em
“Código de acesso” ou “Texto da sessão”. Apenas strings do Telethon são aceitas; as strings do Pyrogram e do TDLib
utilizam formatos diferentes.
JSON da conta#
Um objeto JSON, com no máximo 64 KiB, em um arquivo com extensão .json.
| Campo (pseudônimos) | Significado |
|---|---|
api_id (app_id) |
ID do aplicativo, um número positivo |
api_hash (app_hash) |
Hash do aplicativo, 32 caracteres hexadecimais |
string_session (session_string, session) |
Texto da StringSession do Telethon, não um nome de arquivo |
auth_key (auth_key_hex) + dc_id |
Chave de autenticação completa de 512 caracteres e DC 1–5 |
user_id (id) |
Opcional; verificado no Telegram antes que a autorização seja salva |
Caso haja tanto um apelido quanto o nome principal, ambos devem coincidir. Exemplos:
{ "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
}
O primeiro exemplo preenche apenas as credenciais da API; faça login por telefone ou QR, ou adicione um arquivo de sessão. Listas em massa (um array JSON de contas) não são aceitas.
Identifique o que o senhor possui#
| Como pode ver | Trata-se de | Utilização |
|---|---|---|
*.session; ao abri-lo em um editor de texto, aparece SQLite format 3 na parte superior |
Telethon ou Pyrogram SQLite | Arquivos (detectados automaticamente) |
Uma pasta tdata contendo key_datas |
Telegram Desktop TData | Compacte dois arquivos em ZIP e, em seguida, Arquivos |
Uma linha de texto começando com 1, cerca de 350 caracteres |
Telethon StringSession | Arquivos |
*.json com app_id/app_hash |
Metadados complementares | Arquivos, juntamente com sua sessão |
*.json com auth_key ou string_session |
JSON da conta | Arquivos |
512 caracteres 0-9a-f |
Chave de autenticação | Chave de autenticação |
32 caracteres 0-9a-f |
Hash da API | ID da API + Hash |
td.binlog ou db.sqlite de um aplicativo TDLib |
Armazenamento TDLib | Não compatível |
123456789:AA… |
Token do bot | Não compatível |
Formatos não suportados#
| Formato | Alternativa |
|---|---|
Armazenamento TDLib (td.binlog) e exportações TDLib |
Faça login por telefone ou QR |
| Sequências de sessão do Pyrogram | Utilize o arquivo Pyrogram .session, ou o código QR/telefone |
| TData com várias contas conectadas | Faça logout das outras contas no Telegram Desktop ou utilize o arquivo de sessão específico de cada conta |
| Tokens de bot | Não suportado: o TgWitness atua como uma conta de usuário |
| Listas em CSV/JSON de diversas contas | Importe arquivos de sessão compatíveis em Contas → Importar contas ou entre por telefone/QR em espaços de trabalho separados |
| Sessões de teste no DC ou com bots | Utilize uma conta de usuário de produção |
Várias contas#
Pressione + ao lado do seletor de conta ou abra Conta → Configurações → Configurações de conexão → Espaços de trabalho, insira um nome e faça login.
- Qualquer número de espaços de trabalho, incluindo o principal. Cada um possui sua própria sessão, rota de proxy, fontes, política de captura, registro, chave de assinatura, pontos de verificação e exportações.
- A troca da área de trabalho exibida não interrompe as demais.
- Um diário permanece vinculado à conta que o criou. O login com uma conta diferente requer outro espaço de trabalho, e uma conta não pode ser atribuída a dois espaços de trabalho.
- O token do painel principal controla todas as áreas de trabalho. O acesso concedido pode restringir o acesso de outras pessoas a contas e chats selecionados, com permissões e limites de sessão distintos.
- A função “Contas” renomeia um espaço de trabalho e exclui um espaço adicionado, juntamente com sua sessão, registro, fontes e chave de assinatura. O espaço de trabalho principal não pode ser excluído do painel.
Importação em lote e grupos de contas#
Use Contas → Importar contas para adicionar várias contas, combinar arquivos pelo nome e ver o resultado de cada login. Cada conta recebe seu próprio espaço de trabalho. Os grupos podem copiar configurações selecionadas de um modelo sem unir sessões, chaves ou evidências. Veja o guia de importação e grupos e o painel do pool MTProxy.
Sair#
Conta → Sair do Telegram (com a observação pausada) solicita ao Telegram que encerre a sessão, de modo que ela também desapareça da seção Configurações → Dispositivos da conta e remova a sessão do cofre do espaço de trabalho. O registro, as fontes, as configurações e a chave de assinatura permanecem, e o registro registra o encerramento da sessão. O espaço de trabalho ainda pertence à sua conta: somente essa conta poderá se conectar a ele novamente. Se o Telegram não responder, a sessão ainda será removida aqui e o painel indicará isso; encerre-a no Telegram em Configurações → Dispositivos.
Converta uma sessão do Telethon para o modo offline#
O painel importa arquivos .session diretamente. Para uma conversão offline para um
arquivo StringSession, execute a partir da pasta do projeto:
.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
O conversor lê apenas arquivos SQLite do Telethon (até 64 MiB), nunca modifica os dados de entrada, não realiza solicitações de rede e se recusa a sobrescrever um arquivo de saída já existente.
Mantendo os arquivos de contas em segurança#
- Trate cada
.session, TData ZIP, StringSession, chave de autenticação e JSON de conta como uma senha. O TgWitness mantém a autorização importada em seu cofre criptografado; o(a) senhor(a) pode remover os arquivos originais posteriormente. - Não execute a mesma autorização em dois programas ao mesmo tempo. O Telegram pode revogá-la
(
AUTH_KEY_DUPLICATED), e ambas as cópias deixarão de funcionar. - Uma sessão expirada ou revogada não pode ser reativada por meio de conversão. Faça login novamente.
Solução de problemas#
| Mensagem ou sintoma | O que fazer |
|---|---|
| Não é possível ler esta sessão. Feche o cliente original… | O arquivo SQLite está aberto ou incompleto (sidecar -journal/-wal). Feche o programa original corretamente e copie o arquivo novamente. |
| Esquemas SQLite do Telethon compatíveis: 7 e 8 / Pyrogram … 2 e 3 | O arquivo foi criado por uma versão muito antiga ou desconhecida da biblioteca. Faça o login por telefone/QR em vez disso. |
| Apenas sessões de usuários de produção autorizadas são suportadas | O arquivo Pyrogram pertence a um bot ou à rede de testes. |
| O arquivo TData ultrapassa 512 entradas ou 32 MiB | Compacte apenas os arquivos key_datas e D877F783D5D3EF8Cs, e não a pasta inteira. |
| Não é possível descriptografar o TData. Verifique a senha local do Desktop | Insira a senha local do Telegram Desktop no campo “Senha” ou “Texto da sessão”. |
| Importe uma conta do TData por vez | O Telegram Desktop possuía várias contas; consulte “Formatos não suportados”. |
| Os arquivos selecionados descrevem diferentes contas ou credenciais de API | Selecione arquivos de apenas uma conta. |
| O JSON não contém credenciais ou autorizações de API compatíveis | Verifique os nomes dos campos no JSON da conta. |
| Apenas metadados da API | O JSON não possui sessão. Adicione o arquivo .session ou utilize o telefone/QR. |
| A chave de autenticação HEX deve conter todos os 512 caracteres hexadecimais | A chave está truncada ou contém “…”. |
| O ID da conta não corresponde à conta importada | O ID de usuário do arquivo difere do que o Telegram informa; o arquivo pertence a outra conta. |
| A conta já pertence a outro espaço de trabalho | Abra esse espaço de trabalho em vez de adicionar a conta duas vezes. |
| Conectado, mas falta um grupo privado na lista de bate-papos em “Fontes” | Verifique a adesão. O seletor analisa as primeiras 1.000 conversas; aumente o limite na seção “Parâmetros”. |
| Falha na conexão via proxy | Verifique a rota e o modo de IP. O MTProxy automático tenta outra entrada que esteja funcionando. O modo “Ocultar IP” aguarda; o modo alternativo explicitamente selecionado pode se conectar diretamente após o atraso configurado. Consulte os modos de roteamento. |
Veja também: conexão e segurança para proxies e criptografia, e como funciona a coleta do que é capturado após o login.