Disable account confirm emails when creating users via API

Если пользователь действительно был создан, user_id будет в ответе. Но учитывая, что вы не можете найти пользователя в панели администратора, скорее всего, он не был создан по какой-то причине.

А, понятно, значит, вы создаете инструмент для импорта. Однако вам не следует делать это через API-вызовы; лучше создать скрипт импорта и запустить его непосредственно внутри вашего Docker-контейнера.

Я бы порекомендовал ознакомиться с одним из множества примеров, перечисленных по адресу: discourse/script/import_scripts at main · discourse/discourse · GitHub

Можно спросить, почему?
(У меня есть доступ администратора к Discourse, но нет доступа к серверу/контейнеру Docker, поэтому мне пришлось бы попросить кого-то другого сделать это.)

Похоже на то! Есть ли известные причины этого? Что-то в настройках?

Это в 100 раз быстрее при импорте большого объёма данных, и вы получаете прямой доступ к методам класса ImportScripts::Base, которые позволяют очень легко создавать пользователей, а также выполнять множество других действий при импорте, таких как создание групп, категорий, тем и сообщений:

Вы можете создать скрипт и попросить их запустить его, если это необходимо.

Известных проблем по этому поводу нет. Вот пример запроса curl для создания пользователя:

curl -i -sS -X POST "http://localhost:3000/users" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: ****" \
-H "Api-Username: system" \
-F "name=cfbcc77ae9f4230d2c25" \
-F "username=cfbcc77ae9f4230d2c25" \
-F "email=cfbcc77ae9f4230d2c25@example.com" \
-F "password=3f348653105f05505f5f1a3ff70ef984" \
-F "active=true" \
-F "user_fields[1]=cfbcc77ae9f4230d2c25" \
-F "user_fields[2]=828c0ec3a76"

В ответ вы получаете:

{"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 не применяется.

Также должен признаться, что я не знаю Ruby :man_facepalming:

Поэтому я постараюсь немного глубже разобраться в проблеме с API. Попробую выполнить запрос, аналогичный вашему. Нужно уточнить несколько моментов:
a) Правильно ли, что конечная точка — [mydomain]/users.json?
b) Content-Type должен быть "multipart/form-data" или "application/json", как указано в документации API?
c) Для чего нужны поля "user_fields"?

Да, обычно к всем маршрутам нужно добавлять .json. Да, вы также можете использовать application/json для content-type, а пользовательские поля являются необязательными — они были просто частью моего примера скрипта, который у меня уже был.

Сработало!

Отправка точно такого же curl-запроса, как у вас (с моими данными), привела к созданию активированного пользователя.
Пока неясно, почему изначально у меня не сработало, когда я отправлял похожие запросы из Postman. Я продолжу расследование этой проблемы и сообщу здесь, если найду что-то значимое.

Спасибо за вашу помощь!

Это было исправлено в этом коммите: