Error 403 durante múltiples llamadas a la API

Estamos utilizando las siguientes APIs para actualizar y suspender usuarios, pero estamos recibiendo errores 403. ¿Podrían informarnos cuál es la causa de este error? Para su información, estamos utilizando la clave API de un usuario administrador.

API de suspensión

{{base_url}}/admin/users/316/suspend?api_key={{api_key}}&api_username={{api_username}}

CUERPO de la solicitud

{
    "suspend_until": "3020-04-17",
    "reason": "inactive"
}

Respuesta: 403 Prohibido

Actualización de correo electrónico

{{base_url}}/users/{username}/preferences/email?api_key={{api_key}}&api_username={{api_username}}

CUERPO de la solicitud

{
    "email": "discourse1@example.com"
}

Respuesta: 403 Prohibido

Debes colocar la clave de la API en el encabezado, no en la URL.

2 Me gusta

También lo intenté. Recibo el mismo error 403 Forbidden con BODY-> [“BAD CSRF”]

Las credenciales de la API deben ir en el encabezado de la solicitud. También debes usar un guion en lugar de un guion bajo para los nombres de los campos del encabezado:

  • api_key debe cambiarse a api-key (o Api-Key)
  • api_username debe cambiarse a api-username (o Api-Username)

La regla es que los nombres de los campos del encabezado no distinguen entre mayúsculas y minúsculas, pero debes usar guiones, no guiones bajos. (Aprendí esto de la manera difícil). Echa un vistazo al ejemplo en la parte superior de Discourse REST API Documentation para ver una solicitud de API correctamente formateada.

4 Me gusta