Como moderador, me gustaría usar la API para un foro de Discourse. Normalmente estaba activada y logré obtener una clave de API. Usé este script:
Logré recuperar una clave que tiene 32 caracteres de longitud (¿es correcto?), y en la configuración de seguridad de mi cuenta, la aplicación muestra estos permisos:
Leer todo
Escribir todo
Actualizaciones en vivo
Notificaciones push a servicios externos
Leer y borrar notificaciones
Leer información de sesión del usuario
Crear un token de inicio de sesión de un solo uso
Eso parece bastante bueno. Sin embargo, cuando intento acceder a través de un script con:
from pydiscourse import DiscourseClient
client = DiscourseClient(
'https://forum.example.com',
api_username='tflidd',
api_key='388b79103056fede1d3223dae032df99')
client.user("tflidd")
Es una biblioteca de Python, así que supongo que debería funcionar. La api_key tiene este formato específico, no es la clave real. Recibo el error de que el nombre de usuario o la clave de API no son válidos.
¿Uso mi nombre de usuario o el nombre de la aplicación?
¿La clave de API tiene al menos el formato correcto, tal vez la descodificación de algo salió mal?
Si uso curl como aquí (Discourse-user-notes API - #4 by codetricity):
curl https://forum.example.com/t/95783.json\ -H 'Api-Key: 388b79103056fede1d3223dae032df99'\ -H 'Api-Username: tflidd'
También obtengo un error:
{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}
Si abro la misma URL con el json en mi navegador donde estoy conectado, el navegador web muestra el objeto json correcto. Así que el tema existe y tengo permisos para acceder a él (incluso era uno público).
Solo soy moderador, sin acceso directo de administrador. Podría pedir más información de los registros, si tiene alguna indicación de qué buscar.
En caso de que importe, la versión instalada es: 3.2.0.beta4-dev