Olá, pessoal! Estou trabalhando atualmente em uma integração entre o Front App e o Discourse. Por enquanto, estou usando o Pipedream para conectá-los.
Consegui configurar dois fluxos de trabalho:
Discourse → Front App. Quando uma nova mensagem é recebida no Discourse, ela é postada no Front.
Front → Discourse. Quando respondo a essa mensagem importada do Discourse no Front, um webhook do Pipedream, que escuta novas respostas no Front, usa a API do Discourse para postar a resposta lá. Isso funciona muito bem, porém, quando entro no Front, ele mostra minha resposta (pois aciona o fluxo 1, ou seja, quando uma nova mensagem é recebida no Discourse). Agora tenho duas mensagens no tópico da caixa de entrada: a que enviei pelo Front e a mesma, mas importada pelo fluxo 1.
Alguém tem uma ideia de como “excluir” essas mensagens enviadas pelo Front que são puxadas pelo primeiro fluxo? Isso é possível com a API do Discourse?
Sim, é qualquer tópico ou resposta a um tópico para o Front.
Assim que eu respondo pelo Front, ele é enviado de uma URL (gerada no Pipedream) que aciona a API POST do Discourse para o tópico original (ele o localiza por meio do ID do tópico).
Basicamente, funciona assim…
Eu envio uma resposta a uma pessoa no Front.
Então, a API do Discourse (do Fluxo de Trabalho 1) percebe que há uma nova mensagem no fórum e a envia como uma nova mensagem no Front.
Eu não quero essa duplicação.
Sei que isso pode ficar confuso, então me avise se eu não expliquei muito bem. Qualquer orientação seria super útil!
Então, posso afirmar com segurança que você deseja que um tópico do Discourse seja enviado como uma mensagem no Front apenas na criação inicial e, após isso, nunca mais?
Estou entendendo corretamente?
Tópico criado no Discourse
1a) Tópico convertido no Front como uma mensagem
Usuário responde à mensagem no Front
2a) A mensagem do Front é enviada ao Discourse como uma resposta ao tópico criado.
Um usuário do Discourse responderá a 2a aqui? Ou a conversa termina após esse ponto?
A razão pela qual estou perguntando é que você pode verificar o ID da postagem na criação quando ela vem do Front. Se o Front acionar a criação de post id#345 no Discourse
…então, no seu código do Pipedream que monitora e converte uma postagem do Discourse em uma postagem do Front, você pode garantir que o Post Id não seja igual ao que você acabou de criar. Se for, não converta em uma mensagem do Front…
Isso é possível no Pipedream? Não estou familiarizado com esse produto.
Sim, os usuários do Discourse ainda podem responder ao 2a. Conseguimos fazer isso funcionar! Assim, quando novas mensagens do Discourse são enviadas por membros da comunidade, elas são automaticamente adicionadas ao tópico Front.
Esta captura de tela pode ajudar a ilustrar melhor:
Como você pode ver, respondi via Front com “Apenas uma mensagem de teste do Front” e, como isso é publicado no Discourse, a API do Discourse detecta que se trata de uma nova mensagem e, portanto, envia uma nova mensagem para o tópico.
Sua resposta me fez pensar Talvez criar algum tipo de função que procure por um ID do Front para, em seguida, excluí-lo na API DE ENVIAR MENSAGEM do Discourse… Vou tentar isso. Agradeço a ajuda! Obrigado
Olá @jordan.vidrine, queria apenas agradecer pela ajuda! Conversar sobre isso com você nesta thread me deu uma ideia e agora funciona. Especificamente esta parte:
A razão pela qual estou perguntando é porque você pode verificar o ID da postagem ao criá-la quando vindo do Front. Se o Front disparou a criação da postagem #345 no Discourse