Criando um Bot para o seu Twitter com Node-RED


Olá galera nesse artigo vou mostrar pra vocês como é simples e fácil a gente realizar integrações com o Twitter.

Nossa Meta: Ler uma # (hashtag) especifica no seu Twitter e responder ela com um novo Tweet.

O que precisamos:

Servidor Node-Red rodando na máquina. (Veja como fazer isso)

Após estar com o servidor rodando, acessamos localhost:1880 no navegador:

Temos do nosso lado Esquerdo nossos Nós (Nodes) para desenvolvimento, selecionamos o input do Twitter.

Selecionamos nosso input do Twitter

Após soltar o Node no nosso Flow de desenvolvimento vamos clicar duas vezes sobre ele e fazer uma autenticação na conta do Twitter que deseja usar.

1. Clique no lápis para criar um novo[
2. Vai pedir para autenticar
3. Clique em autenticar
4. Essa msg confirma o processo

O resultado deverá ser esse (img 4), após fazer isso feche a janela e volte para o Flow.

Como vemos já estamos com a conta autenticada no nosso Node e isso já é um grande passo.

Camos esclarecer algumas coisas aqui no nosso Search:

  • all public (Busca todos os tweets publicos)
  • all tweets from people I follow (Todos os tweets para as pessoas que eu sigo)
  • the tweets of specific users (Tweets para usuarios especificos)
  • your direct messages (Mensagens diretas (DM))
  • your twitter events (Tweets eventos)

Dessa vez vamos trabalhar somente com all public (Busca todos os tweets publicos) .

Nesse proximo passo vamos escolher nosso USER e nossa # (Hashtag) para captura.

Neste caso eu deixei como @NodeREDBrasil, #Teste.

Configurar nossas tags e users

Observe:

Ele nos instrui a separar sempre por vírgula, logo podemos receber várias Hashtags e Users. (Não esqueça da vírgula =D )

Com esse passo já concluído, vamos incluir nossa Função (function):

Incluir nossa Function

No nosso Node de function temos umas coisas peculiares:
Nome do Node
Campo de código
Quantas saidas esse Node terá
Enfim nosso código

Nosso código será em JavaScript, ele é muito simples, vamos usar a documentação do Twitter para nos orientar nos campos solicitados.

var newMsg = {};
newMsg.payload = "Olá @" + msg.tweet.user.screen_name + ", mande uma DM e vamos te ajudar! :)";

return newMsg;

O que esse código faz?

Simplesmente declaramos uma váriavel chamada newMsg e atribuimos a ela o texto concatenando com o caminho onde tem a saída de tweet tweet.user.screen_name e retornamos essa variavel na saída.

Observação:
 O payload é atribuido por default no Node-RED para a saída dos dados.
Lembrando de respeitar o limite de 140 caracteres do twiter ou o cod não vai compilar.

Agora vamos trabalhar com o Node Debug, ele é nada mais o Nó que nos retorna as informações antes de mandarmos para a produção pelo próprio navegador.

Debug
Nesse Debug temos umas coisas para ver:
Características Debug

Nossa saida recebendo o payload

debug tab (retorna pelo nosso navegador)

debug tab and console (retorna pelo navegador e pelo terminal/console)

Por fim ligamos nossos Nodes de maneira simples, clicando nos pontos nos finais/inicio de cada nó e ligando conforme a imagem abaixo e clicamos em Deploy.

Ligação do Node & Deploy

Para finalizar, vamos trazer nossa saída do Twitter e conectar na saída da Function e damos Deploy.

Node de saída do Tweeter

>Vamos testar nas redes sociais!

Ao fazer um Tweet com a menção @NodeREDBrasil e no texto conter a nossa #Teste o nosso Botzinho vai mandar de forma automatica nossa mensagem : “Olá @USER, mande uma DM e vamos te ajudar! :)

Envio do Tweet
Resposta do Bot

Bom galera, valeu!

Por enquanto é isso, espero que tenham gostado :)