Utilizzo dell'API Discourse con Front App

Ciao a tutti! Sto attualmente lavorando a un’integrazione tra Front App e Discourse. Al momento, sto utilizzando Pipedream per collegarli.

Sono riuscito a impostare due flussi di lavoro:

  1. Discourse → Front App. Quando viene ricevuto un nuovo messaggio su Discourse, questo viene pubblicato su Front.
  2. Front → Discourse. Quando rispondo a quel messaggio importato da Discourse su Front, un webhook di Pipedream ascolta le nuove risposte su Front e, utilizzando l’API di Discourse, pubblica la risposta su Discourse. Questo funziona benissimo, tuttavia, quando vado su Front, vedo la mia risposta (poiché attiva il flusso di lavoro 1, ovvero quando viene ricevuto un nuovo messaggio su Discourse). Ora ho due messaggi nel thread della posta in arrivo: quello che ho inviato tramite Front e lo stesso, ma importato dal flusso di lavoro 1.

Qualcuno ha un’idea su come “escludere” questi messaggi inviati da Front che vengono importati dal primo flusso di lavoro? È possibile farlo con l’API di Discourse?

Grazie in anticipo!

Ciao :wave:, sembra un’integrazione interessante quella che hai in corso.

Per aiutarti al meglio, mi vengono in mente alcune domande.

  1. Stai instradando in base alla creazione di un PM (messaggio privato) di Discourse o di un nuovo argomento/risposta a un argomento?

Se l’instradamento avviene per un nuovo argomento o una risposta a un argomento…

  1. Nella tua istanza di Discourse, stai instradando qualsiasi argomento o risposta a un argomento in Front come nuovo messaggio?

  2. Quando rispondi a un messaggio da Front, stai utilizzando l’API per inviare una risposta all’argomento originale?

Ciao Jordan!

Grazie per avermi risposto. :blush:

Per rispondere alle tue domande:

  1. Sì, si tratta di qualsiasi argomento o risposta a un argomento su Front.
  2. Una volta che rispondo da Front, viene inviata da un URL (generato da Pipedream) che attiva l’API POST di Discourse verso l’argomento originale (lo individua tramite l’ID dell’argomento).

In sostanza, funziona così…
Invio una risposta a una persona su Front.
Poi l’API di Discourse (dal Flusso di lavoro 1) rileva che c’è un nuovo messaggio nel forum e lo invia come nuovo messaggio su Front.

Non voglio la duplicazione.

So che può diventare confuso, quindi fammi sapere se non ho spiegato bene. :sweat_smile: Qualsiasi suggerimento sarebbe molto utile!

Quindi, possiamo dire che vuoi che un argomento di Discourse venga inviato come messaggio su Front solo alla creazione iniziale e, dopo di ciò, mai più?

Ho capito correttamente?

  1. Argomento creato su Discourse
    1a) Argomento convertito in un messaggio su Front
  2. Utente risponde al messaggio su Front
    2a) Il messaggio su Front viene inviato a Discourse come risposta all’argomento creato.

Un utente di Discourse risponderà a 2a qui? O la conversazione si interrompe dopo questo punto?

Il motivo per cui chiedo è che potresti voler verificare l’ID del post alla creazione quando provieni da Front. Se Front ha innescato la creazione del post id#345 su Discourse

…allora nel tuo codice Pipedream che monitora e converte un post di Discourse in un post di Front, puoi assicurarti che l’ID del post non sia uguale a quello che hai appena creato; se lo è, allora non convertirlo in un messaggio su Front…

È possibile farlo in Pipedream? Non sono familiare con quel prodotto.

Sì, gli utenti di Discourse possono ancora rispondere al 2a. Funziona! Quindi, quando nuovi messaggi di Discourse vengono inviati dai membri della community, vengono automaticamente aggiunti al thread Front.

Questa schermata può aiutare a illustrare meglio:

Come puoi vedere, ho risposto tramite Front con “Solo un messaggio di prova da Front” e, poiché è stato pubblicato su Discourse, l’API di Discorse ha rilevato che si tratta di un nuovo messaggio e ha quindi inviato un nuovo messaggio nel thread.

La tua risposta mi ha fatto riflettere :thinking: Forse potrei creare una funzione che cerca un ID da Front per escluderlo nell’API INVIA MESSAGGIO di Discourse… Proverò a farlo. Apprezzo molto il tuo aiuto! Grazie :blush:

Ciao @jordan.vidrine, volevo solo dirti grazie per l’aiuto! Parlarne con te in questa discussione mi ha dato un’idea e ora funziona. :sparkles: Nello specifico questa parte:

Il motivo per cui chiedo è perché potresti controllare l’ID del post al momento della creazione quando si proviene da Front. Se Front ha innescato la creazione del post #345 su Discourse

Saluti!

Che fantastico! Sono contento di sapere che sta funzionando per te :+1: