EventoObtenha 50% de desconto no seu ingresso para MongoDB.local Londres em outubro 2. Use o código WEB50Saiba mais >>
Desenvolvedor MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
MongoDBchevron-right

Zap, tweet e repita! Como usar o Zapier com o MongoDB

Nic Raboy7 min read • Published Jan 31, 2022 • Updated Sep 09, 2024
Node.jsMongoDBJavaScript
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Some features mentioned below will be deprecated on Sep. 30, 2025. Learn more.
Sou um grande fã de automação quando o cenário permite. Talvez você precise acompanhar as informações dos convidados quando eles confirmam presença em seu evento, ou talvez precise monitorar e React aos feeds de dados. Esses são dois dos muitos cenários possíveis em que você provavelmente não gostaria de fazer as coisas manualmente.
There are quite a few tools that are designed to automate your life. Some of the popular tools include IFTTT, Zapier, and Automate. The idea behind these services is that given a trigger, you can do a series of events.
Neste tutorial, vamos ver como coletar dados do Twitter com o Zapy, armazená-los no MongoDB usando uma função de webhook do Realm e, em seguida, executar agregações usando a linguagem de query do MongoDB (MQL).

Os requisitos

Existem alguns requisitos que devem ser atendidos antes de iniciar este tutorial:
  • Um nível pago do Zapier com acesso a automações premium
  • Um cluster do MongoDB Atlasdevidamente configurado
  • Uma conta do Twitter
Existe um nível gratuito do Zapier, mas como planejamos usar webhooks, que são premium no Zapier, é necessária uma conta paga. Para consumir dados do Twitter no Zapier, é necessária uma conta do Twitter, mesmo que planejemos consumir dados que não estejam relacionados à nossa conta. Esses dados serão armazenados no MongoDB, portanto, é necessário um cluster com acesso IP configurado corretamente e permissões de usuário.
Você pode começar a usar o MongoDB Atlas iniciando um cluster M0 gratuito, sem necessidade de cartão de crédito.
Embora não seja necessário criar um banco de dados e uma coleção antes do uso, usaremos um banco de dadosdo zapier e uma coleção detweets em todo o escopo deste tutorial.

Noções básicas sobre o modelo de dados do Twitter no Zapper

Como o plano é armazenar tuítes do Twitter dentro do MongoDB e depois criar queries para dar sentido a ele, provavelmente deveremos entender os dados antes de tentar trabalhar com eles.
Usaremos a funcionalidade " Search Mention " no Zapier para Twitter. Essecialmente, ele nos permite fornecer uma query do Twitter e trigger uma automação quando os dados são encontrados. Mais sobre isso em breve.
Como resultado, terminaremos com os seguintes dados brutos:
Os dados a que temos acesso são provavelmente mais do que precisamos. No entanto, isso realmente depende do que você está interessado. Para este exemplo, armazenaremos o seguinte no MongoDB:
Sem nos anteciparmos muito, nossa análise será baseada no followers_count e nolocation do usuário. Queremos saber onde estão nossos usuários e dar prioridade aos usuários que atingem um determinado limite de seguidores.

Desenvolvendo uma função de webhook para armazenar informações de Twitter com MongoDB Realm e JavaScript

Antes de começarmos a conectar o Zapier e o MongoDB, precisamos desenvolver o middleware que será responsável por receber dados de tweets do Zapier.
Lembre-se de que você precisará ter um cluster MongoDB Atlas configurado corretamente.
Precisamos criar um aplicativo Realm. No painel do MongoDB Atlas, clique na guia Realm .
Aplicativos MongoDB Realm
Para simplificar, vamos querer criar um novo aplicativo. Clique no botãoCreate a New App (Criar um novo aplicativo ) e prossiga com o preenchimento das informações sobre seu aplicativo.
No Realm Dashboard, clique na guia3rd Party Services.
Serviços de terceiros do Realm Dashboard 3
Vamos querer criar um serviçoHTTP. O nome não importa, mas pode fazer sentido nomeá-lo de Twitter com base no que estamos planejando fazer.
Como planejamos trabalhar com dados de tweets, faz sentido chamar nossa função de webhook de tweet, mas o nome não é realmente importante.
Realm Tweet Webhook
Com exceção do Método HTTP, os padrões são adequados para este webhook. Queremos que o método seja POST porque planejamos criar dados com essa função de webhook específica. Anote o URL do webhook porque ele será usado quando conectarmos o Zapyer.
A próxima etapa é abrir o Function Editor para que possamos adicionar alguma lógica por trás dessa função. Adicione o seguinte código JavaScript:
No código acima, estamos pegando a carga útil da solicitação, obtendo um identificador para a coleçãode tweets no banco de dadoszapier e, em seguida, fazendo uma operação de inserção para armazenar os dados na carga útil.
Há algumas coisas a serem observadas no código acima:
  1. Não estamos validando os dados que estão sendo enviados na carga útil da solicitação. Em um cenário realista, você provavelmente desejaria algum tipo de lógica de validação para ter certeza do que está armazenando.
  2. Não estamos autenticando o usuário enviando os dados. Neste exemplo, estamos confiantes de que somente o Zapier sabe sobre nossa URL.
  3. Não estamos fazendo nenhum tratamento de erros.
Quando chamamos nossa função, um novo documento deve ser criado dentro do MongoDB.
Por padrão, a função não será implementada ao salvar. Depois de salvar, certifique-se de revisar e implantar as alterações por meio da notificação na parte superior da janela do navegador.

Criando um "Zap" no Zapper para conectar o Twitter ao MongoDB

Então, sabemos os dados com os quais trabalharemos e temos uma função de webhook do MongoDB Realm que está pronta para receber dados. Agora precisamos juntar tudo com o Zapier.
Para maior clareza, novas correspondências no Twitter serão nosso trigger no Zapier, e a função webhook será nosso evento.
No Zapier, escolha criar um novo "Zap," que é uma automação. O trigger precisa ser uma menção de pesquisa no Twitter, o que significa que, quando um novo Tweet é detectado por meio de uma consulta de pesquisa, nossos eventos acontecem.
Zapier Twitter Search Mention
Neste exemplo, usaremos a seguinte query de pesquisa do Twitter:
A query acima diz que estamos procurando tuítes que incluam um URL para Developer.mongodb.com. O URL não precisa corresponder exatamente, desde que o domínio corresponda. A query também diz que não estamos interessados em retweets. Queremos apenas tuítes originais, eles devem estar em inglês e devem ser detectados como seguros para o trabalho.
Além dos critérios de pesquisa mencionados, também estamos excluindo tuítes originados de uma das contas do MongoDB.
Em teoria, a consulta de pesquisa acima pode ser usada para ver o que as pessoas estão dizendo sobre o MongoDB Developer Hub.
Com o trigger em vigor, precisamos identificar o próximo estágio do pipeline de automação. O próximo estágio é extrair os dados do trigger e enviá-los para nossa função de webhook do Realm.
Zapier para webhook do Realm
Como evento, certifique-se de escolher Webhooks by Zapier e especificar uma solicitação POST. A partir daí, você será solicitado a inserir o URL do webhook da Realm e o método, que deve ser POST. A Realm espera que a carga útil seja JSON, portanto, é importante selecionar JSON no Zapier.
Temos a opção de escolher quais dados da etapa de automação anterior passar para o nosso webhook. Selecione os campos em que você está interessado e salve sua automação.
Os dados que escolhi enviar são assim:
Os campos não correspondem aos campos originais criados pelo Twitter. É porque optei por mapeá-los para o que fazia sentido para eu.
Ao implantar o Zap, sempre que for encontrado um tuíte que corresponda à nossa query, ele será salvo em nosso cluster MongoDB.

Analisando os Dados do Twitter no MongoDB com um Pipeline de Agregação

Com os dados de tuítes sendo preenchidos no MongoDB, é hora de começar a consultá-los para dar sentido a eles. Neste exemplo fictício, queremos saber o que as pessoas estão dizendo sobre nosso Hub de Desenvolvedores e quão populares são essas pessoas.
Para fazer isso, vamos querer usar um pipeline de agregação dentro do MongoDB.
Veja o exemplo a seguir:
Existem três estágios no pipeline de agregação acima.
Queremos entender os dados do seguidor do indivíduo que fez o tuíte, mas esses dados chegam ao MongoDB como uma string em vez de um número inteiro. O primeiro estágio do pipeline pega os camposfollower_count e following_count e os converte de string para número inteiro. Na verdade, estamos usando $addFields para criar novos campos, mas como eles têm o mesmo nome que os campos existentes, os campos existentes são substituídos.
A próxima etapa é onde queremos identificar pessoas com mais de 1,000 seguidores como pessoas de interesse. Embora pessoas com menos seguidores possam estar dizendo coisas boas, neste exemplo, não nos importamos.
Depois de filtrarmos as pessoas pela contagem de seguidores, criamos um grupo com base em sua localização. Pode ser válido para nós saber em que lugar do mundo as pessoas estão falando sobre MongoDB. Podemos querer saber onde existe nosso público-alvo.
O pipeline de agregação que escolhemos usar pode ser executado com qualquer um dos drivers do MongoDB, por meio do painel do MongoDB Atlas ou por meio da CLI.

Conclusão

Você acabou de ver como usar o Zapper com o MongoDB para automatizar determinadas tarefas e armazenar os resultados como documentos no banco de dados NoSQL. Neste exemplo, optamos por armazenar dados do Twitter que correspondiam a determinados critérios, para serem analisados posteriormente com um aggregation pipeline. As opções de automações e análise que você pode fazer são ilimitadas.
Se você leu este tutorial e quer se envolver com mais conteúdo e desenvolvedores com ideias semelhantes, confira a MongoDB Community.

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Artigo

MongoDB.Live 2020 Keynote em menos de 10 minutos


Mar 21, 2023 | 1 min read
Artigo

Dicas e truques de triggers: exclusão de documentos em cascata usando a pré-imagem de triggers


Aug 12, 2024 | 3 min read
exemplo de código

Inicialização reativa do Java Spring com MongoDB


Apr 02, 2024 | 5 min read
Tutorial

Rastreamento de localização em tempo real com Change Streams e Socket.io


Aug 13, 2024 | 8 min read
Sumário