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.
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.
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.
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:
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.
Nesse Debug temos umas coisas para ver:
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.
Para finalizar, vamos trazer nossa saída do Twitter e conectar na saída da Function e damos Deploy.
>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! :) “
Bom galera, valeu!
Por enquanto é isso, espero que tenham gostado :)