Instruções para aquisição

Instale o zBot (para Windows). Rode este sistema no seu computador e vários outros que podem ser baixados diretamente pelo zBot ou criados por você mesmo(a)!

Detalhes do Sistema

Envio pelo Telegram Web

15/11/2023 | Build: 49
Do pacote: Enviador Telegram Web - privado e grupos

Descrição: Mais informações em www.zbot.com.br
Automatiza o envio de mensagens para uma lista de contatos ou então grupos usando o Telegram Web. Tem outras funções complementares, como por exemplo sair de grupos que não permitem envio de mensagem ou que você foi removido, além de extrair os ids dos seus contatos e também contatos de grupos

Tutorial em Vídeo

Código do script

Este script também pode ser baixado diretamente pelo software zBot
&CriarBotao("1- Abrir Telegram Web";"abrir telegram web";185)&
&CriarBotaoPopup("Enviar mensagem...";"Definir mensagens, Configurações gerais, Zerar status, Efetuar envio";"definir mensagens, configurações, zerar status, efetuar envio";155) //*
&CriarBotaoPopup("Grupos...";"Sair do grupo atual, Sair de grupos travados";"sair do grupo, sair de grupos travados";80) //*
//&CriarBotao("2- Definir mensagens";"definir mensagens";200) //*
//&CriarBotao("3- Configurações de envio";"configurações";200) //*
//&CriarBotao("4- Efetuar envio";"efetuar envio";180) //*
&CriarBotao("🚶Abrir contato atual";"abrir contato atual";170) //*
//&CriarBotao("Sair do grupo";"sair do grupo";220) //*
&CriarBotao("Extrair contatos exibidos";"extrair todos os contatos";185)
//&CriarBotao("Sair de grupos travados";"sair de grupos travados";220) //*
//&CriarBotao("Zerar status";"zerar status";200) //*

#zerar status
   &TbComando("primeiro")[0]
   &marcador("loop zerar")
   &TbValorDefinir("status"; "")[0] //*
   &TbComando("próximo")[0]
   &Se([último resultado];igual;"OK")
      &VaiPara("loop zerar")
   .fimse   
   &TbComando("primeiro")[0]
#


#sair de grupos travados
   &MonitorEscala("escala") //* retorna 100, 125, 150 etc.
   
   &Marcador("loop sair")
   &BlocoExec("abrir contato atual")[3] //*   
   
   &Se([escala];igual;100)
      &MousePosicionar(677;400)[0,5] //*
      &MousePosicionar(1032;730)[1] //*
   .senao
      &MousePosicionar(869;433)[0,5] //*
      &MousePosicionar(794;738)[1] //*      
   .fimse  
   
      
   &MouseNomeCursor("cursor")[0] //* seta, link, texto, ampulheta   
   
   &Se([cursor];diferente;"texto")
      &StatusInserir("Grupo travado. Saindo...";"erro")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
      &BlocoExec("sair do grupo")[1]
      &VaiPara("loop sair")   
   .fimse   
   
   &StatusInserir("Grupo permite envio de mensagem";"sucesso")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante

   &Marcador("continuar")
   &TbComando("próximo")[0] //* primeiro, anterior, próximo, último, apagar
   &Se([último resultado];"diferente";"FALHA")
       &VaiPara("loop sair")
   .senao
       &Mensagem("Fim do processamento")
   .fimse   
#

#sair do grupo
   &NavegadorClicarPerguntar(11215102010881;"Local do menu de opções (canto superior direito)")[1] //*
   &NavegadorClicarPerguntar(11215102010882;"Opção 'Sair do grupo'")[0.5] //*
   &NavegadorClicarPerguntar(11215102010883;"Opção 'Apagar chat'")[0.5] //*
   &TbComando("apagar")[0] //* apaga a linha atual da tabela   
#

// pega a lista de contatos listados no telegram
#extrair contatos  
   &StatusInserir("Lendo dados...";"preto")[0]
   &NavegadorFonteObter("texto navegador")[0] //*
   &StatusInserirExtra("OK";"sucesso")[0]  
      
   &StatusInserir("Localizando identificadores dos contatos ou grupos...";"preto")[0]  
   &TextoExtrairEntre([texto navegador];"data-peer-id=";"#-/";"contatos") [0]
   &StatusInserirExtra("OK";"sucesso")[0]    
#


// ***
// Função principal para extrair contatos do Telegram
#extrair todos os contatos   
   &BlocoExec("extrair contatos")[0] //*     
   &Repetir([Qtd. rolar lista]) //* a variável _indice terá o número do ciclo atual
      &ValorInserirLinha("lista final";[contatos]")[0] //*
      &NavegadorClicarPerguntar(11209093941608;"local para rolar a lista contatos")[2] //*      
      &DigitarID(34)[0.5]
   .fimrepetir
   //[lista final] = [lista grupos]
   &BlocoExec("inserir registros")[0] //*
#

// usa a variável [lista final] para colocar os grupos inéditos na tabela
#inserir registros
   &TextoEliminarRepetidos([lista final];"lista final")[0] //*      &TextoDecodificarHTML([lista final]; "lista final")[0] //*

   &TextoQtdLinhas([lista final]; "qtd")[0] //*
   &Progresso1Iniciar("progresso";[qtd])[0] //*   
   &Repetir([qtd]) //* a variável _indice terá o número do ciclo atual
      &Progresso1Inc(1)[0] //*   
      [contato] = [lista final*[_indice]]
      [retorno] = "sim"
      &TextoTem([contato];"data-";"retorno")[0] //* Retorna sim | não      
      &Se([retorno];igual;"não")
         [linha] = ""
         &Se([contato];diferente;"")                                  
            &TbInserir("contato";"[contato]")[0] //*
         .fimse   
      .fimse   
   .fimrepetir
   &TbExcluirRepetidos("contato")[0] //*
#

#inicializar variáveis
//* Essas informações servem apenas para referência para sabermos o que é usado no código
[mensagem] = ""
[legenda] = ""
[arquivo] = ""
[numero] = ""
[nome] = ""
[definiu_mensagens] = "não"
#


#definir mensagens
    &ValorPedirVarios("Mensagens para enviar"; "mensagem1, imagem1, legenda_img1")[0] //*
    [definiu_mensagens] = "sim"
#

// Função principal de envio
#efetuar envio
   &TextoGerarIdUnico("id_unico")[0] //*
   &TextoObterDataHora("hoje")[0] //*

   &Se([definiu_mensagens];diferente;"sim")
       &Mensagem("Primeiro clique em DEFINIR MENSAGENS")
       &ScriptEncerrar()
   .fimse

   &TbComando("primeiro")[0] //* primeiro, anterior, próximo, último, apagar
   &Marcador("loop")
   &TbLerLinha("linha")[0] //*
   [contato] = [linha*contato]   
   
   &Se([linha*ativo];igual;"não")
      &StatusInserir("Contato/grupo inativo";"erro")[0]
      &VaiPara("continuar")
   .fimse
   
   &Se([linha*status];diferente;"")
      &StatusInserir("Só envia se status for vazio";"erro")[0]
      &VaiPara("continuar")
   .fimse    

   &Se([contato];igual;"")
       &VaiPara("continuar")
   .fimse

   &BlocoExec("abrir telegram web")[1] //*
   &Pausar([Tempo para abrir contato])

   // Vê se o grupo permite nevio de mensagem
   &Se([escala];igual;100)
      &MousePosicionar(677;400)[0,5] //*      
      &MousePosicionar(1032;730)[1] //*
      &Pausar([pausa operacional extra])
   .senao
      &MousePosicionar(869;433)[0,5] //*      
      &MousePosicionar(794;738)[1] //*  
      &Pausar([pausa operacional extra])    
   .fimse         
 
   &MouseNomeCursor("cursor")[0] //* seta, link, texto, ampulheta  
   &Se([cursor];diferente;"texto")
      &StatusInserir("Este grupo não permite o envio de mensagens";"erro")[0] //* cor: erro, sucesso, alerta, preto, cinza, importante
      &TbValorDefinir("ativo"; "não")[0] //*
      &VaiPara("continuar")
   .fimse       
   
   &BlocoExec("enviar mensagens")[1.5] //*
   &TbValorDefinir("status"; [hoje])[0] //*
   &TbValorDefinir("status"; [hoje])[0] //*
   
   &Pausar([Tempo antes de abrir o próximo])   

   &Marcador("continuar")
   &TbComando("próximo")[0] //* primeiro, anterior, próximo, último, apagar
   &Se([último resultado];"diferente";"FALHA")
       &VaiPara("loop")
   .senao
       &Mensagem("Fim do processamento")
   .fimse
#

//* Função que envia as mensagens preenchidas para o contato atual
#enviar mensagens
&NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*

[mensagem] = [mensagem1]
&Se([mensagem];"diferente";"")  
    &StatusInserir("Enviando mensagem 1";"preto")[0]  
    &ValorProcessar("mensagem")[0] //*       
    &BlocoExec("enviar texto")[0] //*
.fimse

[arquivo] = [imagem1]
[legenda] = [legenda_img1]
&ValorProcessar("legenda")[0] //*
&Se([arquivo];"diferente";"")
    &StatusInserir("Enviando imagem 1";"preto")[0]
    &BlocoExec("enviar imagem")[0] //*
.fimse
#


#abrir contato atual
&TbLerCampo("contato")[0] //*
[numero] = [contato]
[telegram_url] = "https://web.telegram.org/k/#[contato]""
&NavegadorIr([telegram_url])[1] //*    
#

//* - - - - - - - - - - - 
#abrir telegram web
[telegram_url] = "https://web.telegram.org/k/#[contato]"
&NavegadorIr([telegram_url])[1] //*
&MonitorEscala("escala") //* retorna 100, 125, 150 etc.
&Se([escala];igual;100)
   &NavegadorPosicionar(50;50;1140;762)[0] //* topo, esquerda, largura, altura
.senao
   &NavegadorPosicionar(50;50;930;762)[0]
.fimse
#


#configurações
&ValorPedirVarios("Configurações";"Pausa operacional extra, Qtd. rolar lista, Tempo para abrir contato, Tempo antes de abrir o próximo")[0] //*
#

//* funções para envio de tipos de dados específicos
//* Considera que o cursor está ativo no campo de mensagem
#enviar texto
&Se([mensagem];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
    &NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
    &ColarTexto([mensagem])[1] //* Cola um valor definido no parâmetro
    &Pausar([pausa operacional extra])
    &NavegadorClicarPerguntar(20231115151639401;"Local do botão para enviar a mensagem")[2] //*
.fimse
#

#enviar imagem
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
    &NavegadorClicarPerguntar(20231115151639400;"Indique o local do campo onde digita a mensagem")[0.5] //*
    &ColarArquivo([arquivo])[5] //*
    &Pausar([pausa operacional extra])
    &Se([legenda];"diferente";"")
        &NavegadorClicarPerguntar(20231115151639402;"Local do campo de legenda")[1] //*
        &ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro       
    .fimse
    //&NavegadorClicarPerguntar(20231115151639403;"Local do botão para enviar a imagem")[2] //*
    &DigitarEnter()[1]
    &Pausar([pausa operacional extra])    
.fimse
#

#enviar arquivo
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
    &NavegadorClicarPerguntar(20231116171700903;"Local do botão para anexar o arquivo")[1] //*
    &NavegadorClicarPerguntar(20231116171700904;"Opção DOCUMENTO")[5] //*
    &Pausar([pausa operacional extra])
    &ColarTexto([arquivo])[0.5] //*
    &DigitarEnter()[3]
    &Pausar([pausa operacional extra])
    &Se([legenda];"diferente";"")
        &NavegadorClicarPerguntar(20231116171700905;"Local do campo de legenda")[1] //*
        &ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro               
    .fimse
    &NavegadorClicarPerguntar(20231116171700906;"Local do botão para enviar o arquivo")[2] //*
.fimse
#

#enviar vídeo
&Se([arquivo];"diferente";"") //* teste -#-/ igual, diferente, contém, não contém, começa, não começa, termina, não termina
    &NavegadorClicarPerguntar(20231116171700903;"Local do botão para anexar o arquivo")[1] //*
    &NavegadorClicarPerguntar(20231116174620275;"Opção Fotos e Vídeos")[5] //*
    &Pausar([pausa operacional extra])
    &ColarTexto([arquivo])[0.5] //*
    &DigitarEnter()[3]
    &Pausar([pausa operacional extra]) 
    &Se([legenda];"diferente";"")
        &NavegadorClicarPerguntar(20231116171700905;"Local do campo de legenda")[1] //*
        &ColarTexto([legenda])[1] //* Cola um valor definido no parâmetro       
    .fimse
    &NavegadorClicarPerguntar(20231116171700906;"Local do botão para enviar o vídeo")[5] //*
    &Pausar([pausa operacional extra])    
.fimse
#

// // //

#informações_exibir
    &BlocoLer("informações";"informações")[0] //*
    &Mensagem([informações])
#

Notas de Atualização

Este script serve para demonstrar e exemplificar as funções de automação de tarefas do zBot. O zBot não tem parceria ou vínculo com quaisquer produtos de terceiros. Ele funciona exclusivamente no escopo do sistema operacional, emulando ações humanas (clique e digitação), lendo e processando dados fornecidos, sendo sua utilização de inteira responsabilidade do usuário.

Verifique, se necessário, quaisquer políticas, regras, leis e outros tipos de implicações legais ou restritas às políticas de uso de quaisquer sistemas de terceiros com os quais o zBot possa interagir por meio dos scripts desenvolvidos por você ou por outras partes. A empresa fornecedora do zBot não se responsabiliza por quaisquer consequências que você, como usuário, possa sofrer por conta do uso dos scripts criados ou baixados de quaisquer fontes.

Termos gerais dos scripts

Os scritps gratuitos ou pagos tem como objetivo disponibilizar funções ou demonstrar possíveis aplicações que podem ser criadas usando a linguagem de programação de scripts do zBot.
Seu código-fonte é fornecido e pode ser livremente estudado, adaptado ou alterado pelo usuário que o adquire. Eventualmente são usados links ou exemplos de funções interagindo com sistemas ou sites populares, mas o zBot não tem nenhum vínculo, propriedade nem parceria com quaisquer produtos de terceiros, nem se responsabiliza por nenhuma consequência de sua utilização, cabendo exclusivamente ao usuário a total responsabilidade sobre isso, sempre levando em conta a licitide de sua aplicação e eventuais termos de uso ou propriedade de terceiros que devam ser considerados.
 Fale conosco