¿Es posible usar la clave de API del sistema para obtener temas "populares" y "nuevos" para un usuario específico?

Este es mi caso de uso: quiero mostrar los 5 temas más recientes y populares en la página de inicio de mi foro. Necesito que estén filtrados según lo que sea apropiado para un usuario específico de Discourse; por ejemplo, algunos de mis usuarios tienen acceso a una categoría privada (que contiene temas que deberían aparecer en las listas de ‘más recientes’ o ‘populares’), mientras que otros no.

Actualmente, cuando llamo a la API de Discourse para obtener lo que necesito, uso una clave de API del sistema. Esto me da resultados que incluyen no solo las categorías ocultas, sino que también siempre muestra los temas fijados globalmente al principio de la lista (aunque un usuario pueda haberlos desanclado hace tiempo).

Así que, como puedes ver, necesito la lista de ‘más recientes’ o ‘populares’ para un usuario específico, no para todo el foro en general.

Y si esta funcionalidad es posible llamando con una clave de API de usuario, entonces es un problema diferente: parece muy engorroso tener que crear una clave de API de usuario (de forma programática) cada vez que quiero obtener estos resultados para un usuario. (Y presumiblemente destruir la clave de API inmediatamente después, ya que no la necesito para nada más). ¿Es esa la única opción?

Propongo una solución: si llamas a latest.json o top.json con una clave de API del sistema, estos endpoints podrían aceptar un parámetro opcional de ID de usuario para limitar los resultados.

Si creas una clave de API para todos los usuarios, puedes especificar el usuario bajo el cual se ejecuta. De este modo, suplanta la identidad de ese usuario.

Hola @sam, ¡fantástico! ¿Cuál es entonces el endpoint? Yo sí tengo una clave de API del sistema para todos los usuarios.

El endpoint normal, que me proporciona todo lo más reciente y sin filtrar:

/latest.json

Endpoints específicos por usuario que he probado y que no funcionan (donde username es el nombre de un usuario en mis foros):

/username/latest.json
/latest/username.json
/username/latest
/latest/username
/latest/4.json (usando el ID de usuario en lugar del nombre de usuario)
etc.

Parece que no puedo encontrarlo :-\

Debes especificar el nombre de usuario en Api-Username como se muestra en el ejemplo del documento anterior.

¡Ajá, gracias! Ya lo veo.