Como eu criei um bot para o Twitter e coloquei para executar no Heroku

Thais Ribeiro
luizalabs
Published in
5 min readSep 5, 2022

Oi oi pessoALL, tudo beleza com vocês? Saindo um pouco do mundo de IA, hoje vou explicar como eu criei um bot simples, que lista as principais noticias, referentes à tecnologia, da internet e posta no Twitter.
O ThaisPosta, além de vir de um trocadilho com meu nome, quem me conhece sabe que isso é comum por aqui, surgiu na intenção de compartilhar todos os dias uma lista de links úteis para novos e antigos desenvolvedores.
Antes de mais nada, vale ressaltar que o projeto faz sua função conforme prometido, contudo, tem muito espaço para ser aprimorado, então vamos começar?

Para conseguirmos criar bots para o twitter, precisamos criar uma conta de desenvolvedor aqui: https://developer.twitter.com/en.

Além de criar a conta no portal do desenvolvedor, será necessário criar o projeto e dar permissões mais elevadas para as API’s através de products, para facilitar o entendimento, vou deixar aqui embaixo um artigo sobre como criar os acessos e obter os tokens.

Após criado o projeto e tendo em mãos os tokens necessários: consumer_key, consumer_key_secret, access_token e access_secret, vamos iniciar o desenvolvimento do projeto.

Como sempre, nosso projeto será em python e vamos precisar das seguintes bibliotecas:

pip install tweepy
pip install requests

Tweepy é uma biblioteca que nos permite acessar facilmente a API do Twitter e requests, como o nome já diz, para fazermos nossas requisições. Outra sugestão de biblioteca é a beautifulsoup4, para rasparmos conteúdos da web que não nos fornece endpoints, contudo, vamos optar pelo simples e deixarmos o web scraping para mais tarde.

Depois de instaladas as bibliotecas, vamos criar alguns arquivos conforme o esquema, onde scheduler.py irá conter nosso código e runtime.txt o motor python que estamos usando.

thaisposta/
┣ .env
┣ .gitignore
┣ README.md
┣ requirements.txt
┣ runtime.txt
┗ scheduler.py

Criaremos agora a busca dos artigos, a principio usei o dev.to e o medium como fontes, ambos possuem API’s disponíveis externamente, o que facilitou a minha busca.

Seguimos agora criando a autenticação com a API do twitter e a função que nos permitirá criar as postagens, conforme o exemplo.

Pronto! Se chegou até aqui com sucesso, agora ao rodarmos python scheduler.py, nossos links serão publicados no twitter.
Mas Thais, se eu quiser automatizar essa tarefa, o que eu faço?

*mágica*

Essa imagem é famosa no mundo dev, mas como meu conteúdo abrange todo mundo e se “todo mundo” não sabe o que é o Heroku, encontrei uma definição muito boa para vocês.

E o que faremos a seguir, é criarmos um pipeline e um aplicativo nessa plataforma, ou seja, vamos subir nosso código. Vou ensinar uma forma simples, usando o github, já aproveito e deixo com vocês o código completo.

Após subir os arquivos para o git e supondo que a conta do heroku já esteja criada, vamos criar um “new app”, com os seguintes passos:

Na aba deploy, vamos conectar a plataforma ao nosso github e buscar pelo repositório do projeto.

Já em settings, vamos configurar nossas variáveis de ambiente.

Por fim, voltaremos na aba anterior e no fim da página iremos dar start no deploy. Se o build foi finalizado com sucesso, o aplicativo já estará pronto para ser usado.

Agora precisamos incluir um agendador de tarefas para rodar nosso script, faremos isso com a ajuda dos complementos do Heroku.

Vamos para o menu de recursos e em Add Ons, vamos procurar por ‘schedule’, usaremos o Advanced Schedule.

Avançando, há uma opção “free”, selecione-a conforme a imagem.

Em seguida, vamos criar nosso primeiro gatilho, iremos atribuir um nome para nossa tarefa e em command inserir o comando “python scheduler.py”.

Como próximo passo, vamos definir as configurações da nossa tarefa, como os intervalos de execução.

Sim, acabamos. Simples assim.
Você pode testar executando a trigger de forma manual, mas todos os dias ou em todo horário configurado, o gatilho será disparado rodando o código que subimos, e por fim desfrutaremos de mais uma tarefa legal e automatizada.

Por hoje é só, espero que tenham gostado desse artigo e se quiserem conferir na íntegra, fiquem a vontade para me seguir: @thaisplicandoo.
Beijos e até breve!

--

--

Thais Ribeiro
luizalabs

Software Engineer at Luizalabs, Community Leader at frontInUdi & Blogger