Ho trovato alcuni esempi in questi forum di aggiornamento delle informazioni utente tramite l’API ma non riesco a farlo funzionare. Sono uno sviluppatore junior, quindi forse mi sfugge qualcosa di ovvio.
Per prima cosa ho provato a far funzionare questo esempio: curl -X PUT -d 'name=new name’ -L 'https://mysite.com/users/user12345.json?api_key=mykey\u0026api_username=username'
ma ottengo [“BAD CSRF”], quindi ho provato questo:
Grazie @JammyDodger. Ho fatto come hai suggerito e ho aggiornato il nome nell’interfaccia di amministrazione e poi ho guardato nella scheda di rete. Come hai menzionato, l’aggiornamento avviene a un URL diverso (/u invece di /users), ma quando cambio l’URL non funziona ancora.
Sotto “Form Data”, sto guardando la richiesta ed è: name: "newname" proprio come la sto inviando.
Per quanto ne so, tutto sembra a posto e non si aggiorna ancora. Sono perplesso.
Ok… Ho passato molto più tempo a cercare nei forum e ho trovato un problema simile di 7 anni fa. A quanto pare, se aggiorni il Content-Type a “application/json; charset=utf-8”, funziona!
Ho un ultimo problema: come aggiorno il nome utente tramite l’API?
Ho provato a fare qualcosa di simile ma non funziona:
Ok… Sono finalmente riuscito a capire come fare. Lascerò un piccolo riassunto qui nel caso in cui qualcuno in futuro cerchi come fare. Le altre risposte che ho trovato sui forum erano obsolete.
Per aggiornare il nome tramite API: curl -X PUT -H \"Content-Type: application/json; charset=utf-8\" -H \"Api-Key: mykey\" -H \"Api-Username: username\" -d '{\"name\": “mynewname\"}' -L 'https://mysite.com/u/user12345.json'
Per aggiornare il nome utente tramite API: curl -X PUT -H \"Content-Type: application/json; charset=utf-8\" -H \"Api-Key: myapikey\" -H \"Api-Username: username\" -d '{\"new_username\": \"mynewusername\"}' -L 'https://mysite.com/u/user12345/preferences/username.json'