ユーザーID(ユーザー名ではなく)を使用してAPI経由でユーザーを更新するにはどうすればよいですか?

私のアプリケーションから、ユーザーが Discourse と連携しているアカウントの情報を更新したいと考えています。具体的には、表示名と、ユーザーが所属するグループ(例えば、私のアプリケーション内で昇進した場合、別のフォーラムグループにも追加されるような場合)を更新したいです。

私のアプリケーションのユーザーテーブルに「discourse member id」の参照を保存し、それを使って更新を行うことを想定していました。例えば、POST /users/{id}.json{\"name\": \"new name\"} というペイロードを送るような方法です。しかし、すべての API ルートが id ではなく username を必要としているように見えます。

これがデフォルトとなっている理由が理解できません。ユーザーはユーザー名を変更できるはずです。もし変更された場合、その統合が壊れてしまうのではないかと思われます。

どのようにすれば、id のような一貫した識別子を使って、このような変更を確実に行うことができるでしょうか?

「いいね!」 2

現時点では、最も良い方法は2回のAPIリクエストを行うことです。1回目はユーザーIDでユーザーを取得してユーザー名を取得し、2回目はそのユーザー名で更新を行う方法です。

external_idでユーザーを更新するオプションもありますが、シングルサインオン(SSO)が有効化されていない場合は使用できないと考えられます。この方法では、Discourse側があなたのアプリケーションのユーザーIDを保存することになり、逆の順序にはなりません。

「いいね!」 2

投稿後、私も似たようなひらめきがありました。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.