Использование external_id через API

Здравствуйте,

Я хотел бы создавать и получать данные о пользователе через API, используя external_id. external_id будет целым числом, ссылающимся на идентификатор в нашей внутренней базе данных. Это не связано с SSO.

Я следую документации, но не могу заставить это работать. Я могу создать пользователя, но не могу получить его по external_id. В документации по API создания пользователя указано только наличие объекта external_ids в запросе, но нет никакой информации о том, каким должно быть содержимое этого объекта. Я поискал в Сообществе и нашел эту тему, но она не очень помогла.

Я пытаюсь получить пользователя с помощью следующего GET-запроса:

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

но получаю ответ 404 со следующим сообщением:

{
    "errors": [
        "Запрошенный URL или ресурс не найден."
    ],
    "error_type": "not_found"
}

Ниже приведены примеры некоторых из моих запросов на создание пользователя. Пользователи создаются успешно, но я не могу получить их по 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 на вашем сайте? Если нет, вам нужно найти имя провайдера вашего аутентификатора и использовать его в запросе. Некоторые подробности об этом здесь: Finding a user by their identity provider 'external ID'.

Спасибо за ваш ответ.

Похоже, это означает, что мы не можем использовать external_id, так как не хотим включать DiscourseConnect. Мы не хотим заменять аутентификацию Discourse.

Нам, вероятно, придётся создавать пользователя через API, а затем сохранять user.id из Discourse в нашей системе и ссылаться на него таким образом.