Comment obtenir tous les derniers/meilleurs messages dans les catégories non privées ?

Voici ma situation : j’utilise Discourse via SSO. Un membre de mon site principal n’a peut-être jamais visité les forums (pour l’instant), mais je souhaite lui afficher les sujets les plus récents ou les plus populaires pour l’inciter à cliquer et découvrir ce qu’il rate.

Cependant, tant qu’il n’a pas accédé aux forums pour la première fois, il ne possède pas de profil Discourse. (Celui-ci est créé lors de la première connexion, conformément au fonctionnement prévu du SSO.)

Cela pose un problème : si je demande à Discourse les dernières activités, je dois soit spécifier un utilisateur valide (qui n’existe pas dans ce cas), soit je reçois une liste incluant des sujets pouvant se trouver dans des catégories privées (protégées par groupe).

Actuellement, je contourne ce problème en ayant une liste codée en dur des catégories à exclure, et je parcours cette liste pour exclure tout sujet appartenant à ces catégories. Mais ce n’est pas idéal. De plus, les sujets épinglés (« Bienvenue sur les nouveaux forums », etc.) se retrouvent toujours en haut de la liste… ce que je peux probablement filtrer aussi… mais tout cela me semble très bricolé. :slight_smile:

Avez-vous des suggestions pour une méthode plus élégante afin d’accomplir ce que je cherche à faire ?

Vous pourriez revenir aux flux (latest.rss/top.rss) ?

C’est une idée astucieuse, mais je ne pense pas que cela fonctionnera pour moi, car mon forum est entièrement privé. Donc, si j’essaie de récupérer le flux RSS sans session Discourse valide, je suis redirigé vers une page de connexion.

Ensuite, créez un utilisateur fictif avec le niveau d’accès minimal et utilisez ses vues comme solution de repli ?

Créez un nouvel utilisateur sans appartenance à des groupes spéciaux et effectuez des requêtes API pour les dernières versions en utilisant cet utilisateur non privilégié.

Hmm, ce n’est pas mal. C’est encore un peu bricolé, mais je pense que c’est légèrement moins bricolé que ce que je fais actuellement. Garder un « utilisateur de base fantôme » signifie, du moins, que je n’ai pas à maintenir manuellement une liste des IDs de catégories Discourse dans le code de mon site principal.