Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:moodle:rest_api_nutzen]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
anwenderwiki:moodle:rest_api_nutzen [2021/04/13 22:33] – [Was diese Anleitung kann] tobiasanwenderwiki:moodle:rest_api_nutzen [2021/04/13 22:37] (aktuell) tobias
Zeile 1: Zeile 1:
 +====== Was diese Anleitung kann ======
  
 +  - Diese Anleitung soll zeigen, wie man einen REST-API-Nutzer in Moodle anlegt, so dass man mit externen Werzeugen Moodle über die REST-Schnittstelle ansprechen kann.
 +  - Diese Anleitung soll aufzeigen, wie man mit den LDAP-Daten der linuxmuster.net (7+) die Strukur, Benutzer und Daten bearbeitet und welche Plugins dafür nötig sind (oder nicht)
 +
 +=== Alternativen ===
 +  * [[anwenderwiki:webapps:moodle:moodle_extern_ldap:start]] arbeitet ohne REST-API-Werkzeugen und erledigt mit Bordmitteln und Plugins in Moodle ziemlich viel (siehe dort)
 +  * moosh als Shell-Werkzeug kann die REST-API ansteuern
 +  * [[anwenderwiki:moodle:moodle3_automatische_einschreibung]] nutzt das openml_enrol plugin für einige der Schritte
 +
 +
 +
 +===== Anlegen eines API-Nutzers =====
 +
 +Entsprechend der Anleitung hier: https://moodle.org/mod/forum/discuss.php?d=319039 verwende ich hier die englischen Begriffe, d.h. es lohnt sich für diesen Teil die Sprache des Moodle-Administrators auf "englisch" umzustellen. Im Prinzip wird der Leitfaden hier verwendet: ''Site administration > Plugins > Web services > Overview''
 +
 +  * Als Moodle Admin anmelden, Sprache auf englisch stellen
 +=== Webservice aktivieren ===
 +  - Webservice aktivieren (falls nicht schon geschehen):
 +    * '' Site administration -> Advanced features'': enablewebservices: Yes and save changes
 +  - Webservice Protokoll "rest" aktivieren (falls nicht schon geschehen):
 +    * ''Site Administration > Plugins > Web Services -> Manage protocols'':
 +    * REST protocol: aufs Auge drücken (sichtbar machen) -> Save changes
 +=== Nutzer anlegen und Webservice-Rolle anlegen und zuweisen ===
 +  - Einen neuen Nutzer erstellen:
 +    * ''Site Administrator > Users > Accounts > Add new user'' <code>
 +Username: moodleapiuser (use your own)
 +Password: (use your own)
 +Email: use your own
 +Fill in the required fields.
 +</code>
 +  - Erstelle eine neue Rolle:
 +    * ''Site Administrator > Users > Permissions > Define roles''
 +    * press the Add new role button
 +    * Select Role archetype = ARCHETYPE: Manager and press continue <code>
 +Shortname: apiservicemanager
 +Custom Name: API Service Manager
 +Context types where this role may be assigned: System/User/Category/Course
 +Leave the rest selections as they appear.
 +
 +-> Capabilities
 +Add the following capabilities
 +webservice/rest:use
 +moodle/user:create
 +enrol/manual:enrol
 +enrol/category:synchronised
 +enrol/manual:unenrolself
 +</code> then press create this role button.
 +  - Die Rolle dem moodleapiuser zuweisen:
 +    * ''Site Administrator > Users > Permissions > Assign System Roles''
 +    * weise den moodleapiuser zu
 +=== Webservice anlegen und den User erlauben ===
 +  - Webservice erzeugen, der die notwendigen Rechte besitzt etwas zu tun: Ich beschließe alles in einen Webservice zu packen, der von dem aufgerufen werden darf, der auch Benutzer anlegen darf (unser moodleapiuser)
 +    * ''Site Administrator > Plugins > Web Services > External Services''
 +    * "Add" <code>
 +Name: lmn_service
 +Short: lmn_service
 +"Enabled" should be checked
 +"Authorized users only" should be checked
 +Press show more
 +Search for capability moodle/user:create and select it.
 +Press add service.
 +</code>
 +    * Jetzt gleich die notwendigen Funktionen zuweisen: ''Add/Edit functions'' <code>
 +core_course_create_categories
 +core_course_create_courses
 +core_course_get_categories
 +core_course_get_courses_by_field
 +core_course_update_categories
 +core_user_create_user
 +enrol_manual_enrol_users
 +core_webservice_get_site_info
 +</code>
 +  - Dieser Service jetzt dem "moodleapiuser" als "Authorized user" zuweisen: ''Site Administrator > Plugins > Web Services > External Services'' -> Custom services: -> lmn_service -> "Authorized Users" ... User suchen und auf "Add" klicken
 +
 +=== Nutzer-Token erstellen ===
 +  - Authorization Token für den "moodleapiuser" erstellen:
 +    * ''Site Administrator > Plugins > Web Services > External Services > Manage Tokens'' <code>
 +Username: moodleapiuser
 +Service: lmn_service
 +Save changes
 +</code>
 +  - Token, wie z.B. ''d09823e2f5fb5e4880506f32f60fafe3'' kopieren für später...
 +
 +=== Testen ===
 +  - Den WEbservice mit dem Token testen:
 +    * '' Site Administration > Development > Web service test client'':  <code>
 +Authentication method: token
 +Protocol: REST protocol
 +Function: core_webservice_get_site_info
 +-> Select
 +Token eingeben
 +-> Execute
 +<EXCEPTION class="webservice_access_exception"> ... falls es nicht funktioniert
 +<RESPONSE ...> falls es funktioniert
 +</code> 
 +
 +==== Rollen-IDs herausbekommen ====
 +  - ''Site administration > Users > Permissions > Define roles''
 +    * Betrachte die URL bei "Student" und bei "Teacher", dort erscheint "roleid=5" bzw. "roleid=3" respektive für mein gerade installiertes Moodle. Gilt auch bei Belwue.
 +
 +===== Daten in Moodle mit ldap2moodle.py manipulieren =====
 +==== Download von ldap2moodle.py ====
 +
 +==== Konfiguration von ldap2moodle.py ====
 +
 +==== Anpassung von ldap2moodle.py ====
 +
 +===== Credits =====
 +
 +- Thomas Schröder
 +- Eli... Michael ...
 [[anwenderwiki:moodle:rest_api_nutzen]] anwenderwiki/moodle/rest_api_nutzen.txt · Zuletzt geändert: 2021/04/13 22:37 von tobias