Come ottenere tutti gli ultimi/migliori messaggi nelle categorie non private?

Ecco la mia situazione: sto utilizzando Discourse tramite SSO. Un utente del mio sito principale potrebbe non aver mai visitato i forum (per ora), ma vorrei mostrargli gli argomenti più recenti o popolari, per invogliarlo a cliccare e scoprire cosa si sta perdendo.

Tuttavia, fino a quando non accede ai forum per la prima volta, non possiede un profilo Discourse. (Questo viene creato al primo accesso, come previsto dal funzionamento dell’SSO.)

Ciò comporta un problema: se chiedo a Discourse le ultime attività, devo specificare un utente valido (che in questo caso non esiste) oppure ricevo un elenco che include argomenti presenti in categorie private (protette da gruppo).

Attualmente risolvo il problema mantenendo un elenco hardcoded delle categorie da escludere, iterando su di esso ed escludendo tutti gli argomenti presenti in quelle categorie. Ma non è l’ideale. Inoltre, gli argomenti fissati (“Benvenuti nei nuovi forum” e simili) finiscono sempre in cima alla lista… immagino che possa filtrarli anch’essi… ma tutto ciò mi sembra molto poco elegante. :slight_smile:

Avete suggerimenti per un approccio più elegante per realizzare ciò che sto cercando di fare?

Potresti tornare ai feed (latest.rss/top.rss)?

È un’idea intelligente, ma non credo che funzionerà per me, dato che il mio forum è completamente privato. Quindi, se provo a recuperare il feed RSS senza una sessione Discourse valida, vengo reindirizzato alla pagina di accesso.

Poi crea un utente fittizio con il livello minimo di accesso e usa le sue visualizzazioni come fallback?

Crea un nuovo utente senza appartenenza a gruppi speciali ed esegui richieste API per l’aggiornamento più recente utilizzando questo utente non privilegiato.

Hmm, non è male. È ancora un po’ una soluzione di ripiego, ma penso che lo sia leggermente meno rispetto a quello che sto facendo ora. Mantenere un “utente base fantasma” significa, almeno, che non devo mantenere manualmente un elenco degli ID delle categorie di Discourse nel codice del mio sito principale.