Una buena aproximación para determinar qué llamada a la API realizar para ejecutar una acción es llevar a cabo dicha acción a través de la interfaz de usuario de Discourse mientras observas la pestaña de red de tu inspector web para obtener detalles sobre la solicitud que se está realizando. Consulta Cómo realizar ingeniería inversa de la API de Discourse para más detalles sobre este enfoque.
Las imágenes de perfil de los usuarios pueden actualizarse a la imagen de perfil del sistema realizando una solicitud PUT a la API en:
http://forum.example.com/u/<discourse_username>/preferences/avatar/pick
Establece type=system en los datos del formulario de la solicitud. Deberás sustituir la URL de tu foro y el nombre de usuario de Discourse que deseas actualizar en la URL.
Aquí tienes un ejemplo de solicitud curl desde mi sitio local. He establecido $api_key con mi clave de API para todos los usuarios:
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"
Un detalle a tener en cuenta es que esta solicitud fallará si has habilitado la configuración del sitio sso overrides avatar.