既然已有合并用户的 API 调用,该如何调用?

您好,

我昨天发起了一个主题(现已关闭),讨论如何以编程方式调用“合并用户”插件。Rafael 很友善地指引我查看发布说明,其中提到该插件现已拥有用户界面(https://meta.discourse.org/t/discourse-2-5-0-beta3-release-notes/148766)。遗憾的是,我对 Discourse API 的了解尚不足以将其转化为具体的 API 调用。这是我们应用程序需要定期执行的操作。能否请您提供帮助?

提前感谢您的支持!

Mark Pemburn
Blue Ocean Ideas

1 个赞

该按钮显示在用户管理页面的底部。

image

如果您在使用时打开 浏览器开发者工具,您将看到需要发出的请求。

6 个赞

嗨,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 个赞

乍一看这些都没问题。你确认过 target_username 值存在吗?

2 个赞

Kane,

是的,源用户和目标用户都是当前用户。如果我去掉请求头,会返回一个 HTML 页面,显示“哎呀!该页面不存在或为私有。”对于 404 错误来说,“页面不存在”这部分是可以理解的,但我不太确定这里的“私有”是什么意思。

Mark

1 个赞

@mpemburn 你成功了吗?

我正在将一些邮件列表迁移到 discourse 实例。由于许多人使用了不同的电子邮件,因此转移会为每个人创建许多暂存用户。我想通过 API 自动合并用户。