Webhook経由でユーザーをグループに追加(メールを使用)

こんにちは。

WordPressのユーザーをWebhook経由でDiscourseのプライベートグループに追加しようとしています。

SSOログイン方法としてWP Discourseプラグインを使用しており、Discourseでのユーザー名の変更は許可していません。これは、WordPressのユーザー名をDiscourseのグループに追加するために使用できると考えたためです。同じになると思ったからです。

しかし、WordPressでユーザー名が自動生成される場合、メールアドレスがユーザー名として使用されることがあります。しかし、Discourseではユーザー名に「@」が含まれることを許可していないため、そこでユーザー名が途切れてしまいます。

例:
WordPressのメールアドレス:jhon@gmail.com
WordPressのユーザー名(自動生成):jhon@gmail.com
Discourseのユーザー名(WP Discourse SSO経由で生成):jhon

これにより、WordPressのユーザーをグループに追加することができません。

これを実現する簡単な方法はありますか?

ユーザー名を指定するのではなく、メールアドレスでユーザーをグループに追加できると素晴らしいです。メールアドレスはどのアプリケーション(CRM、WordPressなど)でも常に利用可能なので、「GET」リクエストをAPIに送信してそのメールアドレスからユーザー名を取得し、グループに追加するという追加の手順は不要になります。

WordPressからWebhookにこのデータを送信するためにFluent Formsを使用しているため、GETリクエストを実行してからユーザー名をPUTすることはできません。

ありがとうございます!

「いいね!」 1

もしあなたの理解が正しければ、あなたは以下を行っていることになります。

  1. DiscourseConnect を使用し、Wordpress をプロバイダー、Discourse をクライアントとして使用する。
  2. Wordpress の Webhook を使用して、フォームアクションの結果として Discourse のグループにユーザーを追加する(例:/g/:group_name/members への PUTリクエスト(APIリファレンス))。

もしそれが正しければ、Wordpress では discourse_username というユーザーメタフィールドで Discourse ユーザー名を見つけることができます。したがって、

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

これを使用して、フォームアクションに続く PUT リクエストで使用するユーザー名を取得します。

WP Discourse プラグインのユーザー Webhook を使用して、ユーザーの discourse_username が入力されていることを確認できます(現在フォームで使用している Webhook とは異なる Webhook について話していることに注意してください)。

「いいね!」 2