API経由でのexternal_idの使用

こんにちは。

外部 ID を使用して API を介してユーザーを作成および取得したいと考えています。外部 ID は、内部データベースの ID を参照する整数になります。これは SSO とは関係ありません。

ドキュメントに従っていますが、うまくいかないようです。ユーザーは作成できますが、external_id でユーザーを取得できません。Create User API では、external_ids オブジェクトを持つリクエストが表示されますが、オブジェクトの内容に関する追加情報はありません。コミュニティを検索しましたが、このトピックしか見つかりませんでしたが、あまり役に立ちませんでした。

次の GET リクエストを使用してユーザーを取得しようとしています。

https://our_domain.discourse.group/u/by-external/7000.json

しかし、404 と次の応答が返されます。

{
    "errors": [
        "The requested URL or resource could not be found."
    ],
    "error_type": "not_found"
}

以下は、試した Create User リクエストの例です。ユーザーは正常に作成されますが、external_id で取得できません。(サイドノート:ユーザーの external_id を表示する方法もありますか?)

{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_id": 7000
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_id": "7000"
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_ids": {
        "external_id": 7000
    }
}
{
    "name": "John",
    "username": "Doe",
    "email": "john.doe@example.com",
    "password": "Z44Di3AeD93KoRUyxpyE",
    "active": true,
    "approved": true,
    "external_ids": [
        7000
    ]
}

DiscourseConnectはサイトで有効になっていますか?有効になっていない場合は、認証子のプロバイダー名を見つけて、リクエストで使用する必要があります。詳細については、こちらをご覧ください。https://meta.discourse.org/t/find-a-user-by-their-identity-provider-external-id/169723。

ご返信ありがとうございます。

DiscourseConnect を有効にしたくないため、external_id は使用できないということだと思います。Discourse の認証を置き換えたくありません。

おそらく、API を介してユーザーを作成し、その後、Discourse の user.id をシステムに保存して、そのように参照する必要があるでしょう。

「いいね!」 1