Ho provato a fare il reverse engineering dell’aggiornamento di un valore user_field.
L’ho fatto seguendo i passaggi in Reverse engineer the Discourse API, ho modificato un utente di prova e ho preso nota di ciò che stava accadendo nella scheda di rete del browser.
Vedo che devo fare una PUT a questo URL: https://example.com/u/my-username-here.json
Dove mi sono un po’ confuso è stato non vedere un payload json ma invece del formdata. Il payload era: user_fields%5B1%5D=some+dji%2C+some+Autel\u0026user_fields%5B5%5D=%40UKDroneClub\u0026user_fields%5B6%5D=%40iKiteFlyer\u0026user_fields%5B8%5D=test\u0026timezone=Europe%2FLondon\u0026default_calendar=none_selected
Desidero aggiornare solo un valore user_field,
È codificato in URL: user_fields%5B8%5D=test
E decodificato, si legge: user_fields[8]=test
(8 = l’id del user_field che voglio aggiornare)
Come posso convertire questo valore di dati del modulo in un payload json in modo da poter poi fare una PUT?
Non sono sicuro di cosa sto sbagliando qui, ma riesco ad aggiornare la sezione “Informazioni su di me” del profilo di un utente tramite una chiamata API, ma non riesco ad aggiornare nessuno dei user_fields.
Se monitoro il mio browser durante la modifica di un utente, posso vedere che esegue un PUT di quanto segue: