Jornada do SirProtocolBot
Jornada do SirProtocolBot
Aproveitei o recesso de final de ano para aprender a utilizar a API do Twitter via pacote twit e ambiente Node.js, visando analisar dados de marketing no futuro, como aceitação de uma publicação ou marca pelos usuários. Por enquanto aprendi e vou tentar repassar os passos para criação de um bot no twitter e aplicação da sintaxe básica, como (re)twittar e seguir.
Para seguir os próximos passos é necessário ter uma conta no Twitter, GitHub e Heroku, e instalar sistema de controle de versão git e o ambiente Node.js. Suponho que possua também familiaridade com terminal e editor de texto.
Passos Iniciais: Configuração
Recomendo criar uma conta no twitter para seu bot, incluir um número de celular e email no cadastro, e então aplicar para conta de desenvolvedor. Durante esse processo será necessário informar o tipo de projeto, a finalidade do projeto e descrever os detalhes de seu uso.
Após a confirmação do email, acesse Overview no Developer Portal e aperte em Create App para criar seu aplicativo. Em seguida crie um arquivo de texto denominado .env para armazenar as chaves de acesso como variáveis do ambiente. Essas chaves são responsáveis por autenticar o acesso do seu bot a sua conta e API do Twitter, são únicas e não devem ser compartilhadas.
Na página Overview acesse a opção App settings do seu aplicativo para alterar as permissões do mesmo, em seguida gere outras chaves na aba Keys and tokens e as armazene no arquivo .env criado acima.
Então crie um novo repositório do GitHub e um aplicativo no Heroku com mesmo nome, como sir-protocol-bot. Clone seu repositório do GitHub para uma pasta local e adicione um arquivo de texto .gitignore. Este arquivo indica ao controlador de versões que estes arquivos não devem ser sincronizados, desta forma não compartilhamos as chaves, nem arquivos temporários.
Na dashboard do heroku acesse Settings e configure as variáveis do ambiente de seu bot em Config Vars, isto é, digite as variáveis do arquivo .env.
Pronto, a configuração das chaves foi realizada com sucesso! Ainda em Settings, abra a aba Deploy e autorize a sincronização com o respectivo repositório no GitHub em Deployment method, e em seguida ative Automatic deploys na configuração imediatamente abaixo. Desta forma, todo git push realizado no seu repositório atualizará seu aplicativo. Note que também existe a opção de usar CLI do Heroku para adicionar as chaves e realizar o deploy.
Desta forma resta configurar em quais momentos executar o bot. Nesta solução adicionei ao aplicativo o add-on heroku scheduler e configurei um job para executar node bot.js diariamente, dado que o bot não precisava ser executado em algum horário ou intervalo específico. No entanto é possível criar um arquivo Procfile na pasta raiz do seu aplicativo com worker: node bot.js, caso precise de maior controle e flexibilidade sobre o aplicativo.
Passos Iniciais: Implementação
Os primeiros passos para implementação do bot consistem em executar npm init -y em um terminal que esteja aberto na pasta de seu projeto, e então editar como preferir o arquivo package.json gerado. Este arquivo contém informações sobre o projeto, como nome, descrição e dependências. Em especial, são adicionados dotenv e twit como dependências.
A lógica principal do programa ficará contida no arquivo bot.js, que poderá ser executado pelo comando node bot.js.
SirProtocolBot
Em um segundo experimento com a API do Twitter resolvi seguir uma ideia aleatória que surgiu no feed - um chamado do acaso. O bot procuraria e seguiria contas relacionadas a protocolos, seja pelo nome ou descrição.
Precisei apenas de uma função principal follow_protocol para a escolha das contas a serem seguidas e uma função auxiliar follow_user que de fato segue um usuário. A função auxiliar envia uma requisição do tipo POST para seguir um usuário com id de valor user_id, e então tweeta “Seguindo Usuário?!” ou “Following User!!“.
A função principal procura contas relacionadas a protocolos seja pelo nome ou descrição. Então verifica qual é a relação (estado da amizade) atual, e caso possa, segue o usuário.
Considerações Finais
Espero que esses pequenos bots possam lhe inspirar a criar algo novo e ajudem com os passos iniciais nessa aventura. Boa sorte!
O código dos dois bots pode ser encontrado nos repositórios TweetGourmet e SirProtocolBot. Em caso de curiosidade o usuário SirProtocolBot existe, e está sempre em experimentação.