Utiliser la fonction web service mod_quiz_process_attempt

Utiliser la fonction web service mod_quiz_process_attempt

par Rixan Randria,
Nombre de réponses : 5

Bonjour,

Je cherche une aide pour utiliser efficacement le processus de remplissage d'un quiz Moodle via son web service. Je suis bloqué à la fonction mod_quiz_process_attempt et je ne trouve aucune documentation claire expliquant comment utiliser cette fonction.

Qui l'a déjà exploité ?

Comment renseigner la data ? c'est-à-dire indiquer le numéro de la queston qu'on va répondre et le numéro de la réponse.

Merci

Moyenne des évaluations  -
En réponse à Rixan Randria

Re: Utiliser la fonction web service mod_quiz_process_attempt

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs
Bonjour Rixan,

Je te pose une question qui me brule les doigts (depuis plusieurs de tes messages) : pourquoi cherches-tu développer autant de fonctions Moodle, hors Moodle ?!
Peut-être que tu aurais plus simple à diriger tes utilisateurs dans Moodle ?

Patrick
En réponse à Patrick Lemaire

Re: Utiliser la fonction web service mod_quiz_process_attempt

par Rixan Randria,
Utiliser Moodle comme un serveur API / web service n'est pas mal aussi. Mais c'est aussi par rapport à une limitation de la connectivité de nos utilisateurs. Ils sont sous proxy.

Travailler en web service est vraiment le seul moyen, une grande partie des utilisateurs ne peuvent pas accéder à un internet ouvert avec notre site Moodle. Mais il y a une petite partie qui s'y connectent directement.

On est bloqué, le seul forum qui parle de mod_quiz_process_attempt est sur stackoverflow https://stackoverflow.com/questions/42148306/moodle-quiz-rest-api/42148373

et aucune réponse pertinente !
En réponse à Rixan Randria

Re: Utiliser la fonction web service mod_quiz_process_attempt

par Rixan Randria,

Voici en 2 captures d'écran mon souci : 2 appels quasi-exactes de cette fonction en web service

Le premier fait toujours une erreur Invalid parameter value detected.

Le deuxième passe très bien, le web service appelé par l'app mobile Moodle.

Pouvez-vous m'aider à voir la différence entre les deux ? Qu'est-ce qui cloche ? L'image en annexe montre bien la comparaison entre les deux requêtes.

Annexe process-comparison.jpg
En réponse à Rixan Randria

Re: Utiliser la fonction web service mod_quiz_process_attempt

par stephane ngov,
Bonjour, la requête get et post ne sont pas les mêmes fonctionnements, il faut se pencher les échanges entre le serveur et le client.
Faites un imprime écran pour voir s'échange entre le le serveur et le client dans le bouton "headers".
la question serait :
le serveur il a besoin de quoi pour répondre correctement au webservice.
le client doit envoyer quoi comme donnée pour que le serveur puisse lui répondre correctement.
il faut se méfier une requête 200 n'est pas toujours un gages que le serveur puisse dire "ok" j'ai compris ce que tu veux mais peut être qu'il manque quelque chose
pour que je te réponde correctement ou que le webservice. On peut très bien accepter la requête car on a demandé de consommer ce webservice(par exemple si le jeton wstoken est ok on répond 200 et on ne va plus loins) mais la donnée envoyé peut être illisible par le serveur par exemple envoyé une donnée sous forme de json à la place d'un xml.
En réponse à stephane ngov

Re: Utiliser la fonction web service mod_quiz_process_attempt

par Rixan Randria,

Le protocole activé est bien uniquement REST côté serveur Moodle et puis c'est bien du json qui est demandé.

J'ai déjà fait en POST au lieu de GET mais toujours la même erreur ! C'est au niveau du tableau data que ça ne passe pas mais regardez les 2 soumissions, c'est pareil, je ne sais pas qu'est-ce qui peut les différencier?

Le code :