你好!
我们尝试通过 API 添加用户,请求如下:
POST https://discourse.example.de/users
{
"name": "Bob Tester",
"email": "example address",
"password": "#######",
"username": "testi",
"active": true,
"approved": false
}
我们的 API 密钥和用户信息已定义在请求头中。
该请求返回以下响应:
Status: 200 OK
{
"success": true,
"active": false,
"message": "<p>您即将完成!我们已向 <b>example address</b> 发送了一封激活邮件。请按照邮件中的说明激活您的账户。</p><p>如果未收到邮件,请检查您的垃圾邮件文件夹。</p>"
}
但是,Discourse 中似乎并未添加该用户?
在文档的示例响应(Discourse API Docs ID。
有人知道为什么我们的响应中没有返回用户 ID 吗?
blake
(Blake Erickson)
2
响应中的那条消息:
这是确认邮件的内容:
这意味着系统会向用户发送一封确认邮件。一旦用户点击该邮件,账户就会被创建。
你使用的是最新版本的 Discourse 吗?如果你在请求中传入 "active": true,系统就不会发送确认邮件。参见 Creating user via API - #11 by blake
2 个赞
你好!
感谢你的回复,但这并没有解决我的问题。
在我的示例请求中,我使用了参数 "active": true,但在响应中我得到的却是 "active": false,因此用户无法被激活——也许是因为用户尚未创建?
除此之外:
如果我在请求中不发送 "active": true 参数,则不会向用户发送电子邮件。
有什么建议吗?
谢谢!
blake
(Blake Erickson)
4
您能告知您使用的 Discourse 版本吗?这将有助于我们确认是否能够复现您的问题。
好的——我们使用的是 2.6.0.beta5 版本。目前没有可用的更新。
1 个赞
blake
(Blake Erickson)
6
太好了,谢谢!只是想确认您是否使用的是旧版本。
我相当确定在发出此请求时,您的凭据实际上并未正确传递。此端点比较特殊,因为它用于我们的注册表单,实际上无需 API 凭据即可使用。您收到的响应是当用户注册但系统检测到这不是 API 请求时返回的。
您能否尝试发出另一个需要身份验证的 API 请求(例如创建分类),看看是否可行?您还可以查看管理 API 页面,查看密钥上次使用的时间,以确认它是否已正确用于您的用户创建 API 请求。
我通过发出一个不带凭据的 JSON 请求成功复现了您的问题:
不带凭据的 JSON 请求
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":"<p>您快完成了!我们已向 <b>8525f374d470a2e3f22c@example.com</b> 发送了一封激活邮件。请按照邮件中的说明激活您的账户。</p><p>如果未收到邮件,请检查您的垃圾邮件文件夹。</p>"}
对比
带凭据的 JSON 请求
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":"您的账户已激活,可以开始使用。","user_id":29}
1 个赞
system
(system)
关闭
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.