He estado intentando hacer ingeniería inversa de la actualización de un valor de user_field.
Lo hice siguiendo los pasos en Reverse engineer the Discourse API, edité un usuario de prueba y tomé nota de lo que ocurría en la pestaña de red del navegador.
Puedo ver que necesito hacer PUT a esta URL: https://example.com/u/my-username-here.json
Donde me confundí un poco fue al no ver una carga útil JSON, sino que es algún formdata. La carga útil era: user_fields%5B1%5D=some+dji%2C+some+Autel%26user_fields%5B5%5D=%40UKDroneClub%26user_fields%5B6%5D=%40iKiteFlyer%26user_fields%5B8%5D=test%26timezone=Europe%2FLondon%26default_calendar=none_selected
Solo deseo actualizar un valor de user_field,
Está codificado en URL: user_fields%5B8%5D=test
Y decodificado, se lee como: user_fields[8]=test
(8 = el id del user_field que quiero actualizar)
¿Cómo convertiría este valor de datos de formulario en una carga útil JSON para luego poder hacer PUT?
No estoy seguro de qué estoy haciendo mal aquí, pero puedo actualizar la sección “Acerca de mí” del perfil de un usuario a través de una llamada a la API, pero no puedo actualizar ninguno de los user_fields.
Si monitorizo mi navegador al editar un usuario, puedo ver que PUTea lo siguiente: