Utilisation de l'API Discourse avec Front App

Salut à tous ! Je travaille actuellement sur une intégration entre Front App et Discourse. Pour l’instant, j’utilise Pipedream pour les relier.

J’ai réussi à configurer deux flux de travail :

  1. Discourse → Front App. Lorsqu’un nouveau message est reçu sur Discourse, il est publié dans Front.
  2. Front → Discourse. Lorsque je réponds à ce message importé de Discourse sur Front, un webhook Pipedream qui écoute les nouvelles réponses sur Front utilise ensuite l’API Discourse pour publier la réponse sur Discourse. Cela fonctionne très bien, cependant, lorsque je vais sur Front, il affiche ma réponse (car cela déclenche le flux 1, c’est-à-dire lorsqu’un nouveau message est reçu sur Discourse). J’ai maintenant deux messages dans le fil de la boîte de réception : celui que j’ai envoyé via Front et le même, mais importé via le flux 1.

Est-ce que quelqu’un a une idée sur la façon d’« exclure » ces messages envoyés depuis Front et récupérés via ce premier flux ? Est-ce possible avec l’API Discourse ?

Merci d’avance !

5 « J'aime »

Salut :wave:, ça a l’air d’être une intégration intéressante que vous avez mise en place.

Pour mieux vous aider, je me pose quelques questions :

  1. Routez-vous en fonction de la création d’un MP (message privé) Discourse ou d’un nouveau sujet / d’une réponse à un sujet ?

Si la routage se fait sur un nouveau sujet ou une réponse à un sujet…

  1. Sur votre instance Discourse, routez-vous n’importe quel sujet, ou une réponse à un sujet, vers Front comme un nouveau message ?

  2. Lorsque vous répondez à un message depuis Front, utilisez-vous l’API pour envoyer une réponse au sujet d’origine ?

3 « J'aime »

Salut Jordan !

Merci de m’avoir répondu. :blush:

Pour répondre à tes questions :

  1. Oui, il s’agit de n’importe quel sujet ou réponse à un sujet vers Front.
  2. Une fois que je réponds depuis Front, cela est envoyé via une URL (générée par Pipedream) qui déclenche l’API POST de Discourse vers le sujet d’origine (elle le trouve grâce à l’ID du sujet).

En gros, voici comment ça fonctionne :
J’envoie une réponse à une personne dans Front.
Ensuite, l’API Discourse (issue du Workflow 1) détecte qu’il y a un nouveau message sur le forum et l’envoie comme un nouveau message dans Front.

Je ne veux pas de duplication.

Je sais que cela peut prêter à confusion, alors fais-moi signe si je n’ai pas très bien expliqué. :sweat_smile: Toute indication serait super utile !

2 « J'aime »

Alors, peut-on dire en toute sécurité que vous ne souhaitez qu’une seule fois, lors de la création initiale, qu’un sujet Discourse soit poussé sous forme de message dans Front, et qu’ensuite, plus jamais ?

Ai-je bien compris ?

  1. Un sujet est créé sur Discourse
    1a) Le sujet est converti en message dans Front
  2. Un utilisateur répond au message Front
    2a) Le message Front est poussé vers Discourse en tant que réponse au sujet créé.

Est-ce qu’un utilisateur de Discourse répondra à 2a ici ? Ou la conversation s’arrête-t-elle à ce stade ?

La raison de ma question est que vous pourriez envisager de vérifier l’ID du post lors de la création, lorsque cela provient de Front. Si Front a déclenché la création du post id#345 sur Discourse

…alors, dans votre code Pipedream qui surveille et convertit un post Discourse en post Front, vous pouvez vous assurer que l’ID du post n’est pas égal à celui que vous venez de créer. S’il l’est, alors ne le convertissez pas en message Front…

Est-ce possible dans Pipedream ? Je ne connais pas ce produit.

4 « J'aime »

Oui, les utilisateurs de Discourse peuvent toujours répondre au message 2a. Nous avons réussi à faire fonctionner cela ! Ainsi, lorsque de nouveaux messages Discourse sont envoyés par des membres de la communauté, ils sont automatiquement ajoutés au fil de discussion Front.

Cette capture d’écran peut aider à mieux illustrer le fonctionnement :

Comme vous pouvez le voir, j’ai répondu via Front avec le message « Juste un message de test depuis Front ». Comme cela est publié sur Discourse, l’API Discourse détecte qu’il s’agit d’un nouveau message et envoie donc un nouveau message dans le fil de discussion.

Votre réponse m’a fait réfléchir :thinking: Peut-être devrais-je créer une fonction qui recherche un identifiant provenant de Front afin de l’exclure dans l’API ENVOYER UN MESSAGE de Discourse… Je vais essayer cela. Merci pour votre aide ! Merci :blush:

4 « J'aime »

Salut @jordan.vidrine, je voulais juste te remercier pour ton aide ! En discuter avec toi dans ce fil m’a donné une idée et maintenant ça fonctionne. :sparkles: Plus précisément cette partie :

La raison pour laquelle je pose la question, c’est que tu pourrais vérifier l’ID du post lors de sa création lorsqu’il provient de Front. Si Front a déclenché la création du post n°345 sur Discourse

Salutations !

4 « J'aime »

C’est super ! Heureux de savoir que ça fonctionne pour toi :+1:

2 « J'aime »