正如 Jay 所指出的,向 /export_csv/export_entity.json 发送经过身份验证的 POST 请求可用于生成归档文件。为此,您需要使用“所有用户”全局 API 密钥。将请求的 API 用户名设置为要为其创建归档的用户名。您还需要在请求中提供 entity 参数,并将其值设置为 user_archive。采用此方法时,系统会为该用户生成一条通知。对于大多数用户而言,这还会向他们发送一封包含下载链接的电子邮件,但我不认为这可以完全依赖——这取决于用户如何配置其邮件偏好设置。
以下是生成归档文件的 curl 请求示例。我在请求中将 $api_key 替换为“所有用户”全局 API 密钥:
curl -X POST "http://localhost:3000/export_csv/export_entity.json" -H "Api-Username: Ben" -H "Api-Key: $api_key" -F "entity=user_archive"
我不确定是否有办法生成归档文件,使其无需用户访问通知并点击下载链接即可直接共享。也许可以开发一个 Data Explorer 查询来返回所需信息,然后通过 API 运行该查询。这种方法的缺点是,如果查询返回的数据行数超过 10,000 行,则需要多次请求才能获取全部数据。有关 Data Explorer 方法的更多详细信息,请参阅:如何使用 Discourse API 运行 Data Explorer 查询。