Benutzer erstellen mit Moodle webservice
Habe ich versucht, einen neuen Benutzer erstellen auf der Lernplattform Moodle und von web-service-api.
Versuchte ich mit einem Beispiel, dass ich auf der github und mit anderen php-code
In den beiden erhalte ich die gleiche Antwort:
"Fehlenden erforderlichen Schlüssel in eine einzige Struktur: Benutzer"
die Antwort:
{
"exception":"invalid_parameter_exception",
"errorcode":"invalidparameter",
"message":"Invalid parameter value detected",
"debuginfo":"Missing required key in single structure: users"
}
Ich versuche, ändern Sie das Objekt ein array ist, aber der Fehler weiterhin.
mein code:
$functionname = 'core_user_create_users';
$user1 = new stdClass();
$user1->id = 1;
$user1->username = 'testusername1';
$user1->password = 'testpassword1';
$user1->firstname = 'testfirstname1';
$user1->lastname = 'testlastname1';
$user1->email = '[email protected]';
$user1->auth = 'manual';
$user1->idnumber = 'testidnumber1';
$user1->description = 'Hello World!';
$user1->city = 'testcity1';
$user1->country = 'BR';
$token = 'mytoken';
$domainname = 'localhost/moodle';
$functionname = 'core_user_create_users';
$restformat = 'json';
$serverurl = $domainname . '/webservice/rest/server.php'. '?wstoken=' . $token . '&wsfunction='.$functionname.'&moodlewsrestformat=' . $restformat;
$users = array($user1);
$params = array('users' => $users);
$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-Type: text/plain',
'content' => $params
)
));
$contents = file_get_contents($serverurl, null, $context);
//print_r($contents);
$resposta = json_decode($contents);
Ich habe ein gültiges token und der Benutzer darf die core_user_create_users
Funktion
- Dieser von nutzen sein kann; die Suche nach "Erstellen Sie eine Neue Moodle-Benutzer" in der Nähe des unteren Rand der Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
bekommen gleiche problem mit den benötigten key 'Benutzer'
problem lösen mit dieser =>
Ich denke, Du musst hoch, den debugging-level in Ihrem moodle-system, ich hoffe, Sie erhalten weitere nützliche Informationen zu diesem Fehler, debugging wird Ihnen helfen, zu erreichen das genaue problem. gehen Sie durch den folgenden Pfad:
Home ► Site administration ► Development ► Debugging
wählen Sie
Developer level
von derdebug messages
und speichern Sie die änderungenIch habe ein ähnliches problem einmal, nach meiner Erfahrung ist ein problema mit
$user1->password = 'testpassword1';
Moodle muss ein Passwort mit mindestens einem Großbuchstaben und mindestens ein simbol, wie /. , - _ etc.versuchen, ein neues Passwort vielleicht funktioniert es...
Nicht die ID in der Benutzer-array, wie es nicht akzeptieren, es als parameter. Für mehr details, Lesen Sie bitte die WebService API-Dokumentation für einen Benutzer anlegen in Moodle.
kam über die gleiche heute brauchen, und ich habe Ihre post erhalten Sie den code aus GitHUB also ich denke, ich würde Ihnen sagen, wie ich den Fehler behoben:
ändern Sie Ihren code wie folgt:
Den code von GitHUB $user1 ist ein Objekt. Moodle benötigt ein Array.
Unten ist eine Kopie aus der Moodle-Dokumentation.
In unserem Fall, haben wir die Https-Unterstützung, aber wir waren immer noch ruft die Http-version der Moodle-url. Wechsel zu Https das problem gelöst.