Piazzale Italia

Web service: Missing required key

 
Immagine Davide Vincenzi
Web service: Missing required key
 
Ciao a tutti,
con la versione 3.2 ho creato un webservice che mi permette di creare un utente e successivamente di iscriverlo ad un corso. Ha funzionato correttamente per diversi mesi, improvvisamente ha iniziato a dare questo errore:

{"exception":"invalid_parameter_exception","errorcode":"invalidparameter","message":"E' stato rilevato un parametro non valido","debuginfo":"users => E' stato rilevato un parametro non valido: Missing required key in single structure: firstname"}

L'url con cui lo richiamo mi pare corretto:
http://xxx.xxxxxxxxxx.xx/webservice/rest/server.php?wstoken=tokenRimosso&wsfunction=core_user_create_users&moodlewsrestformat=json&users[0][username]=utente&users[0][password]=VCvcm#80&users[0][createpassword]=0&users[0][firstname]=Davide&users[0][lastname]=Vincenzi&users[0][email]=davidevincenzi@gmail.com&users[0][idnumber]=1401

Qualche idea su come risolvere?

Grazie 1000
Davide
 
Media dei voti:  -
Immagine Matteo Scaramuccia
Re: Web service: Missing required key
Gruppo Core developersGruppo Particularly helpful MoodlersGruppo Plugin developers

Ciao Davide,
sei certo di aver usato sempre la stessa password?
Probabilmente no (spero Eh?!): prova a rimuovere il carattere "speciale" # oppure a scriverlo come %23.

HTH,
Matteo

Immagine Davide Vincenzi
Re: Web service: Missing required key
 

Ciao Matteo,

per ogni utente ho generato una password casuale, la cosa strana è che ne ho parecchie altre che contengono il # e altri caratteri speciali, però fin ora non hanno mai dato problemi, per fare un test ho provato a creare anche altri utenti, escludendo caratteri speciali e lasciando solamente i paramentri obbligatori per la funzione, ma danno tutti lo stesso errore.


Eliminare i token, il webservice e ricreare tutto potrebbe essere un test da fare?


Grazie Davide

Immagine Matteo Scaramuccia
Re: Web service: Missing required key
Gruppo Core developersGruppo Particularly helpful MoodlersGruppo Plugin developers

Ciao Davide,
il problema che leggo io è che alcuni caratteri rompono la sintassi della URL e vanno quindi "codificati" opportunamente per evitarlo: uno di questi è proprio # che hai nella URL che hai postato per cui al server non arriverà mai altro che la password ed è corretto il messaggio di errore circa la mancanza del parametro firstname.

Non credo che ricostruire il token possa risolvere ma puoi provare: non capisco invece quando parli di eliminare il webservice visto che tu stai chiamando una funzione core, core_user_create_users. Puoi condividere qualche dettaglio in più su questa funzione "personalizzata"?

Inoltre, in questo periodo è cambiato qualcosa nella configurazione del server o della versione PHP?

HTH,
Matteo