我认为他们无法做到。他们需要在该主题上注册并更新其偏好设置,或者更新其整体通知偏好设置。
关于这个端点有文档吗?我搜索了 API 文档,但没找到。
我正在寻找一种方法,可以创建主题并将其分配给特定用户(通过 discourse-assign 插件)。
另外,我在想 API 密钥是否必须属于用户系统,或者我是否可以使用其他具有最小权限的用户(这些最小权限具体是什么?)。
只有这一篇帖子:Creating a staged user with an API call - #8 by blake
这完全可以实现。请查看 https://meta.discourse.org/t/how-to-reverse-engineer-the-discourse-api/20576,你会看到 discourse-assign 插件调用了哪个端点。
不,不需要使用系统用户。你只需要一个拥有足够信任等级以创建和分配主题的用户即可。
感谢您的回复。我了解如何分配特定帖子,但如何可靠地找到由 /admin/email/handle_mail 端点刚刚创建的帖子?该端点似乎还会对接收到的调用进行排队,因此我无法总是在首次调用后立即找到它。
正确,该端点不返回 topic_id。
他们必须是预发布用户吗?你不能直接通过 API 创建用户,然后再创建主题吗?还是说那些还没有账户的人将会向该端点发送邮件?
这是用于不同产品的公开联系表单,每个产品对应不同的商家。我想为特定商家分配主题,并拒绝访问不属于该商家的主题。
从非开发人员的角度来看,我有一个问题。
我正在使用 Discourse 作为我们公司的票务系统,并且已成功将其设置为允许未注册用户在我们的支持论坛中创建新主题。
有时,我需要代表客户创建票证,而不是让他们直接创建。
是否有简单的分步方法可以做到这一点,并代表一个在论坛上尚无帐户的用户创建主题?除非他们自己注册,否则我不想让他们拥有完整帐户。
我建议通过电子邮件创建主题:
这样在创建主题时就会创建一个暂存用户。
您可以通过 API 创建暂存用户
curl -i -sS -X POST "http://localhost:4200/users" \
-H "Content-Type: multipart/form-data" \
-H "Api-Key: 3e8aa0b7970cf010da24d06215fdc7b3951352c61a59ada70f5f36b4ce890bb2" \
-H "Api-Username: system" \
-F "name=2e6ac3603" \
-F "active=false" \
-F "staged=true" \
-F "username=2e6ac3603" \
-F "email=2e6ac3603@example.com" \
-F "password=f9b4c3c7ebd1c2877a0ad659be6ca83e"
然后为用户创建主题,但在用户创建操作时,Discourse 会发送一封激活邮件:
{“success”: true,“active”: false,“message”: “您几乎完成了!我们已向 2e6ac3603@example.com 发送了激活邮件。请按照邮件中的说明激活您的帐户。如果未收到,请检查您的垃圾邮件文件夹。”}
那么,这些行是否都以 CR 结尾?反斜杠前面是双空格还是制表符?
抱歉,正如我所说,我不是开发人员,所以仅展示此代码不足以让我完成,还需要一些额外信息。
所以使用此方法只是创建了用户,即使 staged=true,它也会发送电子邮件邀请吗?
最简单的答案永远是最好的:
所以我们会偶尔使用它。
感谢您的帮助。