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í:
Discourse API
Please view the Discourse API Documentation site for detailed info:
https://docs.discourse.org
Authentication
API requests must use HTTP header based authentication. Pass your Api-Key and Api-Username as HTTP headers. Authentication via query parameters or request body is not supported (this was removed in April 2020). Please see the example cURL request below.
The only API endpoints that continue to support credentials in query parameters are requests to…
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.