Estoy intentando escribir una función para importar todos los usuarios existentes de nuestro sitio externo (un tercero, solo estoy creando el middleware) y estoy intentando usar la función createUser. Funciona bien, excepto por el parámetro external_ids. No importa lo que envíe (probé arrays, objetos… lo que se te ocurra), el ID externo no se guarda pero el usuario se crea. No hay errores.
¿Hay algún formato específico para el objeto external_ids?
Vi la solución sso_sync pero preferiría no seguir ese camino, especialmente porque el parámetro external_ids está incluido en la API.
Ya he configurado SSO y he podido redirigir desde el sitio de terceros a Discourse, pero no recuerdo ningún lugar para definir el proveedor excepto al definir los secretos del proveedor de Discourse Connect. ¿Me falta algo?
Hmm, ok. Si estás usando DiscourseConnect, por lo que he leído en el código, parece que no puedes añadir el external id al crear. El código justo encima solo maneja cuentas asociadas, que son diferentes de SSO.
¿Puedes intentar hacer dos llamadas: la primera llamada igual que la que tienes ahora, pero sin los external ids, y añadir una segunda llamada a updateUser, incluyendo la información del external id? Esperemos que eso funcione.
Gracias por tu ayuda, y sí, estoy usando DiscourseConnect, que probablemente sea la razón por la que esto no funciona. Creo que este es el enfoque que terminaré teniendo que hacer. O eso, o tengo que hacer una segunda llamada que inicie sesión SSO del usuario con el ID externo para que esté vinculado a su correo electrónico.
Edición: Creo que updateUser también tendrá el mismo problema ya que no tengo un proveedor definido, así que probablemente el inicio de sesión SSO sea mi mejor opción.
Para actualizar y cerrar esto, la única solución que funcionó fue ejecutar sso_sync después de crear un nuevo usuario, e incluso eso no fue muy necesario porque una vez que el usuario intenta iniciar sesión en discourse, la sincronización ocurrirá de todos modos por correo electrónico, al parecer.