He generado una clave de API emitida por el administrador con los ámbitos write, read y read lists. Sin embargo, cuando intento usar la clave (añadiéndola en el encabezado Api-Key) para acceder al endpoint {{localhost}}/posts.json, obtengo el siguiente error:
"errors": [
"No tienes permiso para ver el recurso solicitado. El nombre de usuario o la clave de la API son inválidos."
],
"error_type": "invalid_access"
}
Por otro lado, generar una clave global me da acceso al endpoint. ¿Cuál es el ámbito correcto (mínimo) para leer {{localhost}}/posts.json?
Aún no he probado esto, pero creo que lo que estás viendo es el comportamiento esperado. Puedes hacer clic en el botón de ancla que se muestra junto a cada uno de los ámbitos de la clave de API para ver qué rutas permite acceder ese ámbito. Verás que el ámbito read solo se aplica a las rutas que comienzan con /t. El ámbito read lists te da acceso a las listas de temas de Discourse. No hay un ámbito que permita específicamente acceder a /posts.json, así que parece que tendrás que usar una clave global para eso.
Me pregunto si tendría sentido añadir /posts.json al ámbito read.
¡Hola Simon! Gracias por la respuesta y la explicación. Para mi caso de uso, necesito leer las publicaciones desde /posts.json, pero al mismo tiempo me gustaría ser lo menos intrusivo posible y solo solicitar acceso de solo lectura. ¿Existe alguna solución alternativa?
Si solo estás consultando publicaciones públicas, es posible que puedas realizar una solicitud de API no autenticada a /posts.json. Si tu sitio es privado o las publicaciones están en categorías protegidas, creo que la única forma de recuperar las publicaciones actualmente es con una clave de API global.