Ayer inicié un tema (ahora cerrado) sobre cómo llamar al plugin Merge Users de forma programática, y Rafael amablemente me remitió a las notas de la versión, donde se menciona que el plugin ahora cuenta con una interfaz de usuario (Discourse 2.5.0.beta3 Release Notes). Lamentablemente, mis conocimientos sobre la API de Discourse no me permiten traducir esa información en una llamada a la API. Esto es algo que necesitaremos realizar desde nuestra aplicación con bastante frecuencia. ¿Podrías ayudarme, por favor?
¡Gracias por el consejo! Me tomó un tiempo poder crear algunos usuarios en mi Discourse sandbox, pero hoy logré hacerlo. Tomé lo que aprendí del panel de Red de las herramientas de desarrollo e intenté replicarlo mediante Postman. Estos son los valores:
Api-Key: {crear mediante la interfaz de usuario}
Api-Username: system
context: /admin/users/{ID de usuario de origen}/{nombre de usuario de origen}
target_username: {nombre de usuario de destino}
La respuesta fue:
{
"errors": [
"La URL o el recurso solicitado no se pudo encontrar."
],
"error_type": "not_found"
}
Sí, tanto el origen como el destino son usuarios actuales. Si elimino los encabezados, recibo una página HTML que dice: “¡Vaya! Esa página no existe o es privada.” La parte de “la página no existe” es comprensible para un error 404, pero no estoy seguro de qué implica “privada” aquí.
Estoy migrando algunas listas de correo a una instancia de discourse. Dado que muchas personas usaron diferentes correos electrónicos, la transferencia crea muchos usuarios provisionales por persona real. Me gustaría automatizar la fusión de usuarios a través de la API.