Nuestra clave de API y usuario están definidos en el encabezado de nuestra solicitud.
Esta solicitud da como resultado la siguiente respuesta:
Status: 200 OK
{
"success": true,
"active": false,
"message": "<p>¡Casi estás listo! Hemos enviado un correo de activación a <b>example address</b>. Por favor, sigue las instrucciones en el correo electrónico para activar tu cuenta.</p><p>Si no recibes ningún correo electrónico, verifica tu carpeta de spam.</p>"
}
Pero no se agregó ningún usuario en Discourse.
En la respuesta de ejemplo de la documentación (Discourse API Docs) hay un ID de usuario.
¿Alguien tiene alguna idea de por qué no recibimos un ID de usuario en la respuesta?
lo que significa que se envía un correo de confirmación al usuario. Una vez que hagan clic en él, se creará la cuenta.
¿Estás usando la última versión de Discourse? Si pasas "active": true, no debería enviarse un correo de confirmación. Consulta Creating user via API - #11 by blake.
Gracias por tu respuesta, pero no resuelve mi problema.
En mi solicitud de ejemplo usé el parámetro “active”: true, pero en la respuesta obtuve “active”: false, por lo que el usuario no puede ser activado, quizás porque no se ha creado.
Independientemente de eso:
Si no envío el parámetro “active”: true en mi solicitud, no se envía ningún correo electrónico al usuario.
¡Muchas gracias! Solo quería confirmar que no estás en una versión antigua.
Estoy bastante seguro de que tus credenciales no se están pasando correctamente al realizar esta solicitud. Este punto de conexión es especial porque se utiliza en nuestro formulario de registro y, de hecho, no requiere credenciales de API para usarlo. La respuesta que estás recibiendo es la que se genera cuando un usuario se registra, pero detectamos que no es una solicitud de API.
¿Podrías intentar realizar otra solicitud de API que sí requiera autenticación, como crear una categoría, y ver si funciona? También puedes revisar la página de la API de administración y comprobar cuándo se utilizó la clave por última vez para verificar si se está usando correctamente en tu solicitud de API de creación de usuario.
Pude replicar tu problema realizando una solicitud JSON sin credenciales:
Solicitud JSON sin credenciales
curl -i -sS -X POST "http://localhost:3000/users.json" -H "Content-Type: application/json" -d "{\"name\": \"8525f374d470a2e3f22c\", \"active\": \"true\", \"username\": \"8525f374d470a2e3f22c\", \"email\": \"8525f374d470a2e3f22c@example.com\", \"password\": \"65d18e465472452771e02b3462260ea1\"}"
HTTP/1.1 200 OK
{"success":true,"active":false,"message":"\u003cp\u003e¡Casi listo! Hemos enviado un correo de activación a \u003cb\u003e8525f374d470a2e3f22c@example.com\u003c/b\u003e. Sigue las instrucciones del correo para activar tu cuenta.\u003c/p\u003e\u003cp\u003eSi no llega, revisa tu carpeta de spam.\u003c/p\u003e"}
vs
Solicitud JSON con credenciales
curl -i -sS -X POST "http://localhost:3000/users.json" -H "Content-Type: application/json" -H "Api-Key: 079fb2bb12d3b436bb11bde8eb58aaa9a36560fa7d79b14b3087aa40b1ebc2c4" -H "Api-Username: blake.erickson" -d "{\"name\": \"da4be85b6046f9c9b9e1\", \"active\": \"true\", \"username\": \"da4be85b6046f9c9b9e1\", \"email\": \"da4be85b6046f9c9b9e1@example.com\", \"password\": \"65d6f0589c5f234de4ad31662b3a17a2\"}"
HTTP/1.1 200 OK
{"success":true,"active":true,"message":"Tu cuenta está activada y lista para usar.","user_id":29}