Ich habe versucht, die Aktualisierung eines user_field-Wertes zu analysieren.
Ich bin dabei den Schritten in Reverse engineer the Discourse API gefolgt. Ich habe einen Testbenutzer bearbeitet und mir notiert, was im Netzwerk-Tab des Browsers geschah.
Ich sehe, dass ich zu dieser URL PUTen muss: https://example.com/u/my-username-here.json
Wo es ein wenig verwirrend wurde, war, dass ich keine JSON-Payload sah, sondern stattdessen Formular-Daten. Die Payload war: 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
Ich möchte nur einen user_field-Wert aktualisieren.
Es ist URL-kodiert: user_fields%5B8%5D=test
Und dekodiert liest es sich als: user_fields[8]=test
(8 = die ID des user_field, das ich aktualisieren möchte)
Wie kann ich diesen Formular-Datenwert in eine JSON-Payload umwandeln, damit ich ihn dann PUTen kann?
Ich bin mir nicht sicher, was ich hier falsch mache, aber ich kann den Abschnitt „Über mich“ eines Benutzerprofils über einen API-Aufruf aktualisieren, aber ich kann keine der user_fields aktualisieren.
Wenn ich meinen Browser beim Bearbeiten eines Benutzers überwache, sehe ich, wie Folgendes PUT wird: