@CanalQb

Automatizado as leituras de email do ClicksGenie



Estou criando o processo para o ClicksGenie, mas existem vários no mercado, e outras atividades que você pode utilizar o mesmo processo:

Etapas:

ClickGenie: Registrando usuário -> https://bit.ly/45DhOGq
Gmail: Armazenando email em pasta ->  https://mail.google.com/
GSheet e GApps Script: Listando emails em uma planilha -> https://docs.google.com/spreadsheets
Instalação do Python: https://cb.run/3N24
Google Cloud: Criar um arquivo Json de Contas de serviço: https://cloud.google.com/
Python + Chrome Drive(Selenium)
Ativando Script Python



ClickGenie: Registrando usuário

Acesse o Link: https://bit.ly/45DhOGq

Você irá receber a ativação do cadastro por email.
Vale lembrar que você precisa acessar sua conta antes de 15 dias, para que não haja cancelamente.
É o sistema de controle que o site possui para eliminar usuarios robos.

E agora?

Gmail: Armazenando email em pasta

Aguarde receber seu primeiro email de atividade para continuar, ele vai ter essa aparência. 



Com este email recebido, chegou a hora de criamos um filtro para salvar todos os emails em pasta:
Primeiro consiga o email, você pode conseguir através do email aberto, clicando o triangulo que eu selecionei em vermelho na imagem abaixo, e copiar o email de origem ou apenas copiar daqui contact@clicksgenie.com


Agora vá em no campo de pesquisa, e clique em Mostrar opção de pesquisa

Após cole o email copiado no campo DE e vá em Criar Filtro



A tela abaixo irá surgir

Então escolha, Aplicar o marcador: ou defina uma pasta criada, ou crie um Novo marcador... (pasta), após simplesmente clique em Criar filtro, se você observar as opções, existe a ultima escrita como Também aplicar filtro a 2 conversas correspondentes. isso irá fazer os emails já recebidos anteriormente antes dessa ação serem enviados para a pasta também.

E você concluiu o Processo do Gmail.

GSheet e GApps Script: Listando emails em uma planilha

Agora vamos criar uma planilha em branco, acesse https://docs.google.com/spreadsheets


Na imagem abaixo eu dei o nome da planilha de Clicks Genie, e a aba onde vou receber os emails coloquei no nome de Emails. você pode definir o nome que quiser.



Agora você vai preencher as células A1, B1 e C1


Vamos lá, ja deixei o Script pronto para vocês, chegou a hora de abrir o Google Apps Script na planilha, então vá em Extensões e clique em Apps Script.


Assim que você carregar o Apps Script, ele vai ter essa aparencia.



Apenas apague as linhas pré criadas de 1 até 4, e substitua pelo script abaixo:

function extrairLinksDeEmails() {
  var planilha = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Emails');
  var threads = GmailApp.search('label:click');
 
  var dataAtual = new Date();
 
  for (var i = 0; i < threads.length; i++) {
    var mensagens = threads[i].getMessages();
    for (var j = 0; j < mensagens.length; j++) {
      var corpoEmail = mensagens[j].getBody();
      var links = corpoEmail.match(/https:\/\/clicksgenie.com\/user\/earn\/\S+/g);
      if (links) {
        for (var k = 0; k < links.length; k++) {
          // Remove tags HTML
          var linkLimpo = links[k].replace(/<[^>]+>/g, '');
          planilha.appendRow([dataAtual, linkLimpo]);
        }
        // Mova o e-mail para a lixeira após planilhar
        mensagens[j].moveToTrash();
      }
    }
  }
}

A Segunda linha, o texto getSheetByName('Emails'), é o nome da ABA da planilha que estou usando neste momento.
A Terceira linha, o texto 'label:click' é o nome onde no gmail estou salvando os emails recebidos do ClickGenie

Salve e execute para testar:

A tela abaixo irá aparecer, clique em Revisar permissões

O popup irá surgir

Selecione sua conta, a que está no seu gmail, uma nova telá irá surgir

Clique em Avançado


Autorize, clicando em Acessar Projetos sem titulo (não seguro), basicamente ele está falando que usar scripts de forma imprudente pode comprometer a segurança.

Agora é só permitir o vinculo do seu gmail para essa planilha.



OBS: Cada email recebido na planilha é deletado no gmail.


Agora ainda no Google Apps Script, clique no icone do despertador (Acionadores), você vai criar um timer para que a planilha consulte seu email.
Agora com a guia de acionadores aberto, configure similar ao da imagem abaixo, o tempo é definido por você, eu nornamente uso a cada 6 horas.

Agora concluimos o processo do Google Sheet e do Google Apps Script.

Instalação do Python

Cada versão de Python, pode sofrer variação na hora de executar ou depurar um script, isso por que ele possui regras e atualizações e normativas diferentes em cada versão.
Neste caso, até o momento eu normalmente uso o python 3.8.10 tanto para Windows como para Linux.
Caso queria ver o processo de instalação em VMS, no seu computador Windows, ou Linux Desktop ou Server, o meu blog está cheio de passo a passo, esteja a vontade de pesquisar.
Pesquisa: https://canalqb.blogspot.com/search?q=python
Link do Python para Download:  https://cb.run/3N24

Google Cloud: Criar um arquivo Json de Contas de serviço

Também o processo do Google Cloud, tem alguns post no meu canal e no blog ensinando a criação https://canalqb.blogspot.com/search?q=Google+Cloud


Caso nunca tenha usado o Google Cloud, você irá criar um novo projeto, o processo será intuitivo, praticamente basta dar um nome.
Caso tenha criado algo, e queria criar um novo, clique em NOVO PROJETO ou use algum já criado.

Resolvido a parte de criação do projeto, vamos ativar a API do Google Sheet



Clique no icone do Hambúrguer e procure API e serviços, após clique em Biblioteca.

Pesquise google sheets api


Clique no retorno da pesquisa


Basta ativar
Agora volte ao Hambúrgues e procure API e serviços, após clique em Credenciais.




Dentro de Credenciais
Clique em + CRIAR CREDENCIAIS e após Conta de serviço.

Após siga os prints

Crie um nome de sua escolha para a conta de serviço, e clique em CONCLUIR.

Com sua conta criada, clique sobre o email que foi criado


Agora vá em CHAVES após em ADICIONAR CHAVE e então em Criar nova chave.


Vai gerar uma proxima tela, então mantenha selecionado JSON e após CRIAR.


Será feito o Download  de um arquivo Json, salve com o nome e local que preferir, será usado daqui a pouco.

Concluimos talvez a parte mais tensa.

Python + Chrome Drive(Selenium)

Primeiro acesso o site do Chrome Driver e valide se existe atualização e compatibilidade com o Chromium ou derivados, no nosso caso o Google Chrome: https://cb.run/3SJg
A ultima compatibilidade foi no ChromeDriver 114.0 com Google Chrome 114, infelizmente o Google está atualizando mais rapido que o ChromeDrive, devido varios problemas constantes de segurança no Google.
Aqui está o acesso para o Chrome Drivers modificados https://cb.run/9VRG compativeis com os Chromium mais recentes. 
Providencie o download do chromedriver compativel com sua maquina.

Ativando Script Python


A primeira coisa que precisamos fazer é preparar a maquinas
Se você estiver usando algum linux server, sem interface gráfica (que eu sempre recomendo para executar scripts de rotina de repetição)
Então vai precisar instalar o Google Chrome
Vamos as etapas:

Se estiver usando algum Linux Server sem interface grafica, coisa que indico:
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt update
sudo apt install google-chrome-stable

Teste a versão
google-chrome --version
Agora voltamos ao Python, instale os módulos necessários
python -m pip install --upgrade pip
pip install selenium
pip install chromedriver_autoinstaller
pip install gspread
pip install oauth2client
Alguns erros podem precisar de:
pip install --upgrade requests==2.31.0
pip install --upgrade urllib3
pip install --upgrade chardet
Criando o service para o Linux
Eu salvei em etc/systemd/system/clickgenie.service usando o editor nano
[Unit]
Description=ClickGenie Service

[Service]
ExecStart=/usr/bin/python /mnt/hd/arquivos/clicksgenie/ClickGenie.py
WorkingDirectory=/mnt/hd/arquivos/clicksgenie
Restart=on-failure
User=qb
# Configura um reinício a cada 6 horas (21600 segundos)
RestartSec=21600

[Install]
WantedBy=multi-user.target
Observe o caminho onde está salvo seus arquivos no linux
Comandos para executar o service

Registrar alteração ou criação do service
sudo systemctl daemon-reload

Inserir serviço na inicialização
sudo systemctl enable clickgenie.service

Iniciar o serviço
sudo systemctl start clickgenie.service

Reiniciar o serviço
sudo systemctl restart clickgenie.service

Ver status do servico
sudo systemctl status clickgenie.service

Parar o serviço
sudo systemctl stop clickgenie.service

15 ultimas linhas de consulta
sudo journalctl -u clickgenie.service -n 15

O Script final vai ser lançado no vídeo, aguardem!



SCRIPT PYTHONhttps://cb.run/7FIc
Senha no vídeo