J’ai essayé d’effectuer une ingénierie inverse sur la mise à jour d’une valeur de user_field.
J’ai suivi les étapes décrites dans Reverse engineer the Discourse API, j’ai modifié un utilisateur de test et j’ai noté ce qui se passait dans l’onglet réseau du navigateur.
Je vois que je dois faire un PUT vers cette URL : https://example.com/u/my-username-here.json
Là où j’ai été un peu confus, c’est que je n’ai pas vu de charge utile JSON, mais plutôt des données de formulaire. La charge utile était : 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
Je souhaite seulement mettre à jour une valeur de user_field.
C’est encodé en URL : user_fields%5B8%5D=test
Et décodé, cela donne : user_fields[8]=test
(8 = l’identifiant du user_field que je veux mettre à jour)
Comment puis-je convertir cette valeur de données de formulaire en une charge utile JSON afin de pouvoir ensuite y faire un PUT ?
Je ne suis pas sûr de ce que je fais de mal, mais je peux mettre à jour la section “À propos de moi” du profil d’un utilisateur via un appel API, mais je ne peux pas mettre à jour les user_fields.
Si je surveille mon navigateur lors de la modification d’un utilisateur, je peux voir qu’il effectue un PUT de ce qui suit :