¡Hola a todos! Actualmente estoy trabajando en una integración entre Front App y Discourse. Por ahora, estoy usando Pipedream para conectar ambos.
He logrado configurar dos flujos de trabajo:
Discourse → Front App. Cuando se recibe un nuevo mensaje en Discourse, se publica ese mensaje en Front.
Front → Discourse. Cuando respondo a ese mensaje importado de Discourse en Front, un webhook de Pipedream que escucha las nuevas respuestas en Front utiliza la API de Discourse para publicar la respuesta en Discourse. Esto funciona muy bien; sin embargo, cuando voy a Front, se muestra mi respuesta (ya que activa el flujo 1, es decir, cuando se recibe un nuevo mensaje en Discourse), y ahora tengo dos mensajes en el hilo de la bandeja de entrada: el que envié desde Front y el mismo, pero importado por el flujo 1.
¿Alguien tiene alguna idea sobre cómo “excluir” estos mensajes enviados desde Front que se importan mediante ese primer flujo? ¿Es esto posible con la API de Discourse?
Sí, es cualquier tema o respuesta a un tema hacia Front.
Una vez que respondo desde Front, se envía desde una URL (generada en Pipedream) que activa la API POST de Discourse hacia el tema original (lo encuentra mediante el ID del tema).
Básicamente, funciona así…
Yo envío una respuesta a una persona en Front.
Luego, la API de Discourse (desde el Flujo de trabajo 1) detecta que hay un nuevo mensaje en el foro y lo envía como un nuevo mensaje en Front.
No quiero esa duplicación.
Sé que esto puede resultar confuso, así que avísame si no lo expliqué bien. ¡Cualquier orientación sería de gran ayuda!
¿Podemos decir con seguridad que solo deseas que un tema de Discourse se envíe como mensaje a Front en su creación inicial y, después de eso, nunca más?
¿He entendido esto correctamente?
Se crea un tema en Discourse
1a) El tema se convierte en un mensaje en Front
Un usuario responde al mensaje de Front
2a) El mensaje de Front se envía a Discourse como respuesta al tema creado.
¿Responderá un usuario de Discourse a 2a aquí? ¿O la conversación termina después de este punto?
La razón por la que pregunto es que podrías considerar verificar el ID de la publicación al crearla cuando proviene de Front. Si Front desencadena la creación de post id#345 en Discourse
…entonces, en tu código de Pipedream que monitorea y convierte una publicación de Discourse en una publicación de Front, puedes asegurarte de que el Post Id no sea igual al que acabas de crear; si lo es, entonces no lo conviertas en un mensaje de Front…
¿Es esto posible en Pipedream? No estoy familiarizado con ese producto.
Sí, los usuarios de Discourse aún pueden responder a 2a. ¡Ya tenemos esto funcionando! Así que cuando se envían nuevos mensajes de Discourse desde miembros de la comunidad, se agregan automáticamente al hilo de Front.
Esta captura de pantalla puede ayudar a ilustrarlo mejor:
Como puedes ver, respondí desde Front con “Solo un mensaje de prueba desde Front” y, como eso se publica en Discourse, la API de Discourse detecta que es un mensaje nuevo y, por lo tanto, envía un nuevo mensaje al hilo.
Tu respuesta me ha hecho pensar Quizás crear alguna función que busque un ID de Front para luego excluirlo en la API DE ENVIAR MENSAJE de Discourse… Lo probaré. ¡Agradezco mucho tu ayuda! Gracias
¡Hola @jordan.vidrine! Solo quería darte las gracias por la ayuda. Hablarlo contigo en este hilo me dio una idea y ahora funciona. Específicamente esta parte:
La razón por la que pregunto es porque podrías revisar la verificación del ID del post al crearlo desde Front. Si Front activó la creación del post #345 en Discourse