Ajouter un utilisateur à un groupe via webhook avec e-mail

Bonjour,

J’essaie d’ajouter des utilisateurs de WordPress à des groupes privés dans Discourse via un webhook.

J’utilise le plugin WP Discourse comme méthode de connexion SSO et je n’autorise pas les utilisateurs à changer leur nom d’utilisateur dans Discourse. J’ai fait cela parce que je pensais que je pourrais ainsi utiliser le nom d’utilisateur de WordPress pour les ajouter à un groupe dans Discourse. Parce que je pensais qu’ils seraient les mêmes.

Le problème est que lorsque le nom d’utilisateur est généré automatiquement dans WordPress, il utilise parfois leur e-mail comme nom d’utilisateur. Mais Discourse n’autorise pas cela dans les noms d’utilisateur, donc il coupe le nom d’utilisateur à "@".

Exemple :
E-mail WordPress : jhon@gmail.com
Nom d’utilisateur WordPress (généré automatiquement) : jhon@gmail.com
Nom d’utilisateur Discourse (généré via WP Discourse SSO) : jhon

Cela ne me permet pas d’utiliser l’utilisateur WordPress pour l’ajouter à un groupe.

Y a-t-il un moyen plus simple de faire cela ?

Ce serait formidable de pouvoir ajouter des utilisateurs à un groupe avec leur e-mail au lieu de leur nom d’utilisateur. L’e-mail est toujours disponible dans n’importe quelle application (CRM, WordPress, etc.), donc il ne sera pas nécessaire de faire une étape supplémentaire pour faire une requête "GET" à l’API pour obtenir le nom d’utilisateur à partir de cet e-mail, puis les placer dans le groupe.

J’utilise Fluent Forms pour envoyer ces données au webhook depuis WordPress lorsqu’ils envoient un formulaire, donc je ne peux pas faire la requête GET, puis PUT le nom d’utilisateur.

Merci !

1 « J'aime »

Si je vous comprends bien, vous faites ceci

  1. Utilisation de DiscourseConnect avec Wordpress comme fournisseur et Discourse comme client.
  2. Utilisation d’un Webhook dans Wordpress pour placer les utilisateurs dans des groupes dans Discourse (.e. PUT vers /g/:group_name/members (api ref)) à la suite d’une action de formulaire.

Si c’est exact, vous pouvez trouver le nom d’utilisateur Discourse dans Wordpress dans le champ méta utilisateur discourse_username, donc

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

Utilisez cela pour obtenir le nom d’utilisateur à utiliser dans la requête PUT suite à l’action du formulaire.
Vous pouvez vous assurer que discourse_username est rempli pour vos utilisateurs en utilisant les webhooks utilisateur dans le plugin WP Discourse (notez que nous parlons de webhooks différents de ceux que vous utilisez actuellement dans votre formulaire).

2 « J'aime »