在同步 SSO 中重置头像

确定执行某项操作所需的 API 调用的一个有效方法是:通过 Discourse 用户界面执行该操作,同时观察网络浏览器的网络标签页,以查找相关请求的详细信息。有关此方法的详细说明,请参阅如何逆向工程 Discourse API

可以通过向以下地址发送 API PUT 请求来将用户头像更新为系统头像:

http://forum.example.com/u/<discourse_username>/preferences/avatar/pick

在请求的表单数据中设置 type=system。您需要将 URL 中的论坛地址和要更新的 Discourse 用户名替换为实际值。

以下是我本地站点的一个 curl 请求示例。我已将 $api_key 设置为我的“所有用户”API 密钥:

curl -X PUT "http://localhost:3000/u/scossar/preferences/avatar/pick" \
-H "Api-Key: $api_key" \
-H "Api-Username: system" \
-H "Content-Type: multipart/form-data;" \
-F "type=system"

需要注意的是,如果您启用了 sso overrides avatar 站点设置,此请求将会失败。