mpemburn
(Mark Pemburn)
1
您好,
我昨天发起了一个主题(现已关闭),讨论如何以编程方式调用“合并用户”插件。Rafael 很友善地指引我查看发布说明,其中提到该插件现已拥有用户界面(https://meta.discourse.org/t/discourse-2-5-0-beta3-release-notes/148766)。遗憾的是,我对 Discourse API 的了解尚不足以将其转化为具体的 API 调用。这是我们应用程序需要定期执行的操作。能否请您提供帮助?
提前感谢您的支持!
Mark Pemburn
Blue Ocean Ideas
1 个赞
riking
(Kane York)
2
该按钮显示在用户管理页面的底部。

如果您在使用时打开 浏览器开发者工具,您将看到需要发出的请求。
6 个赞
mpemburn
(Mark Pemburn)
3
嗨,Kane,
谢谢你的提示!我花了一些时间才在我的沙盒 Discourse 中创建了一些用户,但今天终于成功了。我从开发工具的 Network 面板中获取了一些信息,并尝试通过 Postman 进行复现。以下是相关参数:
方法:POST
端点:https://my-discourse-sandbox/admin/users/{源用户 ID}/merge.json
请求头:
Content-Type: multipart/form-data
Accept: application/json
参数:
Api-Key: {通过 UI 创建}
Api-Username: system
context: /admin/users/{源用户 ID}/{源用户名}
target_username: {目标用户名}
返回结果为:
{
"errors": [
"请求的 URL 或资源未找到。"
],
"error_type": "not_found"
}
你知道我哪里出错了吗?
1 个赞
riking
(Kane York)
4
乍一看这些都没问题。你确认过 target_username 值存在吗?
2 个赞
mpemburn
(Mark Pemburn)
5
Kane,
是的,源用户和目标用户都是当前用户。如果我去掉请求头,会返回一个 HTML 页面,显示“哎呀!该页面不存在或为私有。”对于 404 错误来说,“页面不存在”这部分是可以理解的,但我不太确定这里的“私有”是什么意思。
Mark
1 个赞
artur
(Artur Lobanov)
6
@mpemburn 你成功了吗?
我正在将一些邮件列表迁移到 discourse 实例。由于许多人使用了不同的电子邮件,因此转移会为每个人创建许多暂存用户。我想通过 API 自动合并用户。