Если пользователь действительно был создан, user_id будет в ответе. Но учитывая, что вы не можете найти пользователя в панели администратора, скорее всего, он не был создан по какой-то причине.
А, понятно, значит, вы создаете инструмент для импорта. Однако вам не следует делать это через API-вызовы; лучше создать скрипт импорта и запустить его непосредственно внутри вашего Docker-контейнера.
Можно спросить, почему?
(У меня есть доступ администратора к Discourse, но нет доступа к серверу/контейнеру Docker, поэтому мне пришлось бы попросить кого-то другого сделать это.)
Похоже на то! Есть ли известные причины этого? Что-то в настройках?
Это в 100 раз быстрее при импорте большого объёма данных, и вы получаете прямой доступ к методам класса ImportScripts::Base, которые позволяют очень легко создавать пользователей, а также выполнять множество других действий при импорте, таких как создание групп, категорий, тем и сообщений:
Вы можете создать скрипт и попросить их запустить его, если это необходимо.
Известных проблем по этому поводу нет. Вот пример запроса curl для создания пользователя:
{"success":true,"active":false,"message":"\u003cp\u003eВы почти завершили! Мы отправили письмо с подтверждением на адрес \u003cb\u003ecfbcc77ae9f4230d2c25@example.com\u003c/b\u003e. Пожалуйста, следуйте инструкциям в письме для активации вашей учётной записи.\u003c/p\u003e\u003cp\u003eЕсли письмо не пришло, проверьте папку со спамом.\u003c/p\u003e","user_id":4}
Возможно, что-то изменилось, поскольку похоже, что письма теперь отправляются, но пользователь всё ещё создаётся. Похоже, что параметр active=true не применяется.
Поэтому я постараюсь немного глубже разобраться в проблеме с API. Попробую выполнить запрос, аналогичный вашему. Нужно уточнить несколько моментов:
a) Правильно ли, что конечная точка — [mydomain]/users.json?
b) Content-Type должен быть "multipart/form-data" или "application/json", как указано в документации API?
c) Для чего нужны поля "user_fields"?
Да, обычно к всем маршрутам нужно добавлять .json. Да, вы также можете использовать application/json для content-type, а пользовательские поля являются необязательными — они были просто частью моего примера скрипта, который у меня уже был.
Отправка точно такого же curl-запроса, как у вас (с моими данными), привела к созданию активированного пользователя.
Пока неясно, почему изначально у меня не сработало, когда я отправлял похожие запросы из Postman. Я продолжу расследование этой проблемы и сообщу здесь, если найду что-то значимое.