Añadir usuario a grupo mediante webhook con correo electrónico

Buenos días:

Estoy intentando agregar usuarios de WordPress a grupos privados en Discourse a través de un webhook.

Utilizo el plugin WP Discourse como método de inicio de sesión SSO y no permito que los usuarios cambien su nombre de usuario en Discourse. Hice esto porque pensé que de esta manera podría usar el nombre de usuario de WordPress para agregarlos a un grupo en Discourse. Porque, pensé que serían los mismos.

El problema es que cuando el nombre de usuario se genera automáticamente en WordPress, a veces usa su correo electrónico como nombre de usuario. Pero Discourse no permite esto en los nombres de usuario, por lo que rompe el nombre de usuario en “@”.

Ejemplo:
Correo electrónico de WordPress: jhon@gmail.com
Nombre de usuario de WordPress (generado automáticamente): jhon@gmail.com
Nombre de usuario de Discourse (generado a través de WP Discourse SSO): jhon

Esto no me permite usar el usuario de WordPress para agregarlos a un grupo.

¿Hay una forma más fácil de hacer esto?

Sería genial poder agregar usuarios a un grupo con su correo electrónico en lugar de su nombre de usuario. El correo electrónico siempre está disponible en cualquier aplicación (CRM, WordPress, etc.), por lo que no se necesitará el paso adicional de hacer una solicitud “GET” a la API para obtener el nombre de usuario de ese correo electrónico y luego ponerlos en el grupo.

Uso Fluent Forms para enviar estos datos al webhook desde WordPress cuando envían un formulario, por lo que no puedo hacer la solicitud GET y luego PUT el nombre de usuario.

¡Gracias!

1 me gusta

Si te entiendo correctamente, estás haciendo esto

  1. Usando DiscourseConnect con Wordpress como proveedor y Discourse como cliente.
  2. Usando un Webhook en Wordpress para poner a los usuarios en grupos en Discourse (por ejemplo, PUT a /g/:group_name/members (referencia de la API)) como resultado de una acción de formulario.

si eso es correcto, puedes encontrar el nombre de usuario de Discourse en Wordpress en el campo meta de usuario discourse_username, así

get_user_meta($user_id, 'discourse_username', true);

Usa eso para obtener el nombre de usuario a usar en la solicitud PUT después de la acción del formulario.
Puedes asegurarte de que discourse_username esté relleno para tus usuarios usando los webhooks de usuario en el plugin WP Discourse (ten en cuenta que estamos hablando de webhooks diferentes a los que estás usando actualmente en tu formulario).

2 Me gusta