API / 匿名化或删除

你好。我们使用的是托管的 Discourse 并启用了 OAuth。我们突然意识到,在处理删除请求时,我们忽略了从 Discourse 实例中删除相应数据。

我希望能够匿名化一个账户,或者通过 API 程序化地删除一个账户——但我没找到简单的方法,因为我不知道 Discourse 账户的 ID。

我是否忽略了什么明显的地方?有什么建议吗?

谢谢,

Andrew

4 个赞

您是否知道您的 OAuth 身份提供商与 Discourse 之间的电子邮件地址是否匹配?如果匹配,您可以通过向 /admin/users/list/all.json?email=<用户邮箱地址> 发起经过身份验证的 API 请求,根据电子邮件地址获取 Discourse 用户。例如:

curl -X GET "http://localhost:3000/admin/users/list/all.json?email=bob@example.com" \
-H "Api-Key: $api_key" \
-H "Api-Username: system"
5 个赞

它们应该匹配,谢谢——这正是我遗漏的调用。正在验证。

我也对使用 API 调用来匿名化用户感兴趣。您用于匿名化用户的 API 端点是什么?

用于匿名化的 API 端点:

HTTP 方法: PUT
端点: https://example-community.dev/admin/users/{id}/anonymize


如果您已知要匿名化用户的电子邮件,可以使用上述调用获取 {id} 值。

7 个赞

/anonymize 端点是否已从 API 文档中移除?

我在此处查找:

分别在 usersadmin 部分。

2 个赞

它可能尚未添加到 API 文档中,我会确保尽快将其记录在案。

3 个赞

@sarahann 已添加 /anonymize 路由到 API 文档中。

3 个赞

呼!刚才吓了我一跳 :stuck_out_tongue:

谢谢你这么快就处理好了!

1 个赞