Criando um Bot no Twitter com R

GitHub Web Scraping Lógica In_Utilidade

Um exemplo lúdico para aprender a usar o GitHub Actions.

Afonso Campos true
2022-07-13

Esse bot “nasceu” da ideia de aprender a utilizar minimamente o GitHub Actions para fazer com que meu código em R fosse executado de tempos em tempos por meio de um Cron. As aplicações no dia a dia de trabalho são inúmeras, tais como: agendar envio de relatórios automatizados por e-mail; raspagem de dados diárias; atualização de dasboards. Pera um exemplo simples e lúdico de aplicação pensei no “comemorarbot” que informa a data comemorativa do dia por meio de uma postagem diária no twitter.

Código em R

Primeiramente tive que raspar uma base de dados de um site obtendo o máximo de datas comemorativas. Em posse da base, com aproximadamente 1350 datas comemorativas, eu resolvi complicar decidi escrever o código de maneira que as datas comemorativas móveis fossem ajustadas automaticamente para o ano corrente (páscoa, carnaval, dia das mães …). Por conta disso tive que implementar funções para ajustar quase 50 feriados! Mesmo tendo que ser na força bruta, pesquisando cada data no google e vendo como era estipulada, isso só foi possível porque eu achei um padrão na escrita da base para os feriados moveis, sendo fácil extrair para ajustar. Finalizando a parte de código em R eu tive que pensar na frase da postagem com as datas, se somente um feriado frase no singular, caso contrário, plural. Outro problema que contornei está relacionado ao número máximo de caracteres da postagem no twitter ser superior a 280 (muitos feriados em um único dia). Para esse caso eu fiz com que fossem feitas duas postagens (infelizmente não dá para fazer “o fio” para postagem encadeadas) separadamente dividindo as datas comemorativas do dia.

Chaves de Acesso no Twitter

Acessei a página de desenvolvedores do twitter e obter os tokens de acesso para a conta que criei (https://developer.twitter.com/en). Essa chave permite que eu faça o login na conta e execute a postagens direto do script em R.

Github Actions

Com o script em R bastou eu subir para o GitHub meu stcript e uma pasta “workflow” com um arquivo YAML contendo basicamente: as especificações da máquina a ser utilizada; Cron com a hora de execução; instalação do R e pacotes necessários para execução do código e o caminho do script em R a ser executado. Aqui eu tive um problema. Existe uma maneira de colocar as senhas criptografadas dentro do GitHub, mas eu não consegui fazer funcionar, desta maneira tive que deixar o código no repositório privado com as senhas dentro do script em r.

O resultado

O bot funciona fazendo uma pastagem todos os dias próximo das oito horas da manhã.

ou veja a conta em funcionamento em: https://twitter.com/comemorarbot

Finalizando, eu só consegui fazer isso funcionar graças a essas referências: