Estoy buscando restablecer el avatar mientras uso sync_sso (volver a usar letter_avatar_proxy).
Actualmente estoy pasando avatar_force_update=true y ningún valor para avatar_url. ¿Debería pasar un valor explícito (¿null?) para avatar_url en su lugar? Gracias de antemano.
Al revisar el código de Discourse SSO, no creo que sea posible restablecer el avatar de un usuario a un avatar de letra llamando a sync_sso. Lo que hace el código es intentar descargar el avatar desde la URL que se pasa con el parámetro avatar_url. Si ese parámetro se omite, se establece en null o es una cadena vacía, no se realizará ningún cambio en el avatar del usuario.
¿Cómo podría solicitar que la API realice tal acción? Intenté implementar una solución alternativa, pero no está funcionando del todo bien.
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.
Curiosamente, ese fue el workaround que intenté, pero obtuve resultados inconsistentes. Lo probaré un poco más y te informaré.