Our API Key and User are defined in the header of our request.
This request results in the following response:
Status: 200 OK
{
"success": true,
"active": false,
"message": "<p>Du bist fast fertig! Wir haben eine Aktivierungsmail gesendet an <b>example address</b>. Bitte folge den Anweisungen in der E-Mail, um dein Konto zu aktivieren.</p><p>Wenn keine E-Mail ankommt, ĂŒberprĂŒfe bitte deinen Spam-Ordner.</p>"
}
But there ist no user added in discourse?
In the example response from the documentation (Discourse API Docs) there is a user id.
Does anyone have an idea, why we dont get an user id in the response?
which means that the user is sent a confirmation email. Once they click on it they will be created.
Are you on the latest version of Discourse? If you pass in "active": true it should not send an email confirmation. See Creating user via API - #11 by blake.
thank you for your answer, but it doesnât solve my problem.
In my example request I used the param âactiveâ: true, but in the response I got âactiveâ: false, so the user cant be activated - maybe because he isnât created?
Independently of that:
If I dont send the âactiveâ: true param in my request there is no email sent to the user.
Great thanks, just wanted to confirm you werenât on an old version.
Iâm pretty sure your credentials arenât actually being passed in correctly when making this request. This endpoint is kind of special because it is used in our sign up form and doesnât actually require api credentials in order to use it. The response you are getting is when a user signs up but we detect that it isnât an api request.
Could you try making another api request that does require authentication, like creating a category, and see if that works? You can also check the admin api page and see when the key was last used to see if it is being used correctly in your user create api request.
I was able to replicate your issue by making a json request without credentials:
json request w/out creds
curl -i -sS -X POST "http://localhost:3000/users.json" -H "Content-Type: application/json" -d "{\"name\": \"8525f374d470a2e3f22c\", \"active\": \"true\", \"username\": \"8525f374d470a2e3f22c\", \"email\": \"8525f374d470a2e3f22c@example.com\", \"password\": \"65d18e465472452771e02b3462260ea1\"}"
HTTP/1.1 200 OK
{"success":true,"active":false,"message":"\u003cp\u003eYouâre almost done! We sent an activation mail to \u003cb\u003e8525f374d470a2e3f22c@example.com\u003c/b\u003e. Please follow the instructions in the mail to activate your account.\u003c/p\u003e\u003cp\u003eIf it doesnât arrive, check your spam folder.\u003c/p\u003e"}
vs
json request w/ creds
curl -i -sS -X POST "http://localhost:3000/users.json" -H "Content-Type: application/json" -H "Api-Key: 079fb2bb12d3b436bb11bde8eb58aaa9a36560fa7d79b14b3087aa40b1ebc2c4" -H "Api-Username: blake.erickson" -d "{\"name\": \"da4be85b6046f9c9b9e1\", \"active\": \"true\", \"username\": \"da4be85b6046f9c9b9e1\", \"email\": \"da4be85b6046f9c9b9e1@example.com\", \"password\": \"65d6f0589c5f234de4ad31662b3a17a2\"}"
HTTP/1.1 200 OK
{"success":true,"active":true,"message":"Your account is activated and ready to use.","user_id":29}