Ryan_NR
(Ryan)
30 Septiembre, 2019 14:34
1
Hola a todos: soy un usuario administrador de nuestra instancia de Discourse, pero no puedo consultar ciertos puntos de conexión.
A veces obtengo esto:
Otras veces se me muestra el mensaje: Debes iniciar sesión para hacer eso.
He confirmado que la clave de API que estoy utilizando está asociada a mi usuario administrador y que el API_Username es mi propio nombre de usuario. ¿Tienen algún consejo al respecto?
Mi suposición es que la llamada no está enviando las credenciales correctamente.
blake
(Blake Erickson)
1 Octubre, 2019 13:14
3
Podrías intentar pasar las credenciales de la API en el encabezado de la solicitud en lugar de en los parámetros de consulta. Debería haber un ejemplo en el tema de la documentación de la API.
Ryan_NR
(Ryan)
1 Octubre, 2019 13:14
4
Podría ser, no estoy seguro. La configuración que tengo es solo la colección de Postman descargada desde aquí:
API de Discourse
Consulte el sitio de documentación de la API de Discourse para obtener información detallada:
https://docs.discourse.org
Autenticación
Las solicitudes a la API deben utilizar autenticación basada en encabezados HTTP. Pase su Api-Key y Api-Username como encabezados HTTP. La autenticación a través de parámetros de consulta o cuerpo de la solicitud no es compatible (esto se eliminó en abril de 2020). Consulte el ejemplo de solicitud cURL a continuación.
L…
Solo cambié la clave de la API, el nombre de usuario y la URL base.
¿Esta colección ya no es válida?
Ryan_NR
(Ryan)
1 Octubre, 2019 13:15
5
Gracias @blake , lo probaré.
blake
(Blake Erickson)
1 Octubre, 2019 13:17
6
Sí, probablemente algunas de ellas estén desactualizadas.
Ryan_NR
(Ryan)
1 Octubre, 2019 13:21
7
@blake - Pasar las credenciales como un encabezado de solicitud devuelve lo mismo:
{
"errors": [
"No tienes permiso para ver el recurso solicitado."
],
"error_type": "invalid_access"
}
blake
(Blake Erickson)
1 Octubre, 2019 13:52
8
Pude hacer que la solicitud de la API de miembros del grupo funcionara en Meta con este comando curl:
curl -i -sS -X GET "https://meta.discourse.org/groups/my-private-group/members.json" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: key" \
-H "Api-Username: username"
Tal vez puedas usar la opción de copiar como comando curl en Postman y comparar.