Moodle
Configuration de Moodle pour un accès à l'API par AppScho
Last updated
Configuration de Moodle pour un accès à l'API par AppScho
Last updated
La configuration de Moodle consiste à activer les services Web nécessaires à la communication entre Moodle et AppScho, ainsi qu'à nous fournir un utilisateur possédant les permissions requises pour utiliser ces services Web.
La première étape est d'activer le module de Web Services de Moodle, permettant l'utilisation des API proposées par l'outil. Rendez-vous dans votre panneau d'administration Moodle, dans la section Plugins > Services web, et effectuez les opérations suivantes :
Activer les services Web
Activer des protocoles
Activer le protocole REST
L'écran devrait ressembler à ceci :
Rendez-vous dans Plugins > Services web > Services externes. Il s'agit ici de créer une instance des Web services qu'AppScho pourra utiliser, et ce afin de pouvoir configurer des permissions limitées spécifiques à notre compte de service.
Sous Services personnalisés, cliquez sur Ajouter, et remplissez le formulaire avec les valeurs suivantes :
Nom : AppScho
Nom abrégé : appscho
Activé : coché
Uniquement utilisateurs autorisés : coché
Cliquez sur Ajouter un service afin d'enregistrer le service.
Dans Moodle, chaque service web a accès à un jeu de fonction prédéfini. Par défaut, aucune fonction n'est accessible par un nouveau service. Rendez-vous dans Plugins > Services web > Services externes, et à côté de notre service AppScho, cliquez sur Fonctions, puis Ajouter des fonctions. Les fonctions suivantes sont nécessaire pour une intégration complète dans AppScho :
Nom de la fonction
Description
core_user_get_users
Récupérer des informations sur l'utilisateur connecté
core_enrol_get_users_courses
Récupérer les cours dans lequel un utilisateur est inscrit
mod_assign_get_assignments
Récupérer les devoirs à rendre
mod_assign_get_submission_status
Récupérer le status des rendus de devoirs
core_calendar_get_action_events_by_timesort
Récupérerles échéances
gradereport_overview_get_course_grades
Récupérer les moyennes globales des cours d'un utilisateur
message_popup_get_popup_notifications
Récupérer les notifications actives d'un utilisateur
Cliquez sur Ajouter des fonctions afin d'enregistrer cette sélectionner.
Les services Web de Moodle nécessitent un compte valide pour être utilisés, soit un compte utilisateur classique, dans le cas d'un étudiant ou d'un professeur, soit un compte de service, dans le cas d'un système externe. Sur la même page, cliquez sur Créer un utilisateur spécifique et renseigner les informations suivantes dans la page de création de l'utilisateur :
Nom d'utilisateur : appscho
Choisir une méthode d'authentification : Authentification des services web
Prénom : AppScho
Nom : API
Adresse de courriel : noreply@appscho.com
Cliquez sur Créer l'utilisateur.
Notre compte ne sera connectera jamais à l'interface Web de Moodle et ne nécessite donc pas de mot de passe. Retournez dans le panneau d'administration des Web services dans Plugins > Services web, cliquez sur Créer un jeton pour un utilisateur, et remplissez le formulaire avec les valeurs suivantes afin de créer un jeton d'authentification pour notre compte de service :
Utilisateur : AppScho API
Service : AppScho
Enregistrez le jeton en cliquant sur Enregistrer.
Notez la valeur du jeton qui sera affichée dans le tableau, elle sera à fournir à AppScho.
Retournez ensuite sur la page Plugins > Services web > Services externes et, à côté de notre service nouvellement créé, cliquez sur Utilisateurs autorisés pour y ajouter notre utilisateur AppScho API.
Notre compte de service a maintenant accès aux fonctions citées ci-dessus, mais ne possède pas encore les permissions d'y faire appel. Pour nous donner les permissions requises, il s'agit de créer un nouveau rôle possédant ces permissions, et de l'attribuer à notre utilisateur. Rendez-vous dans Utilisateurs > Permissions > Définition des rôles, et créez un nouveau rôle n'utilisant aucun modèle. Remplissez le formulaire de la sorte :
Nom abrégé : appscho
Nom complet personnalisé : AppScho
Types de contextes où ce rôle peut être attribué : Système
Dans le tableau des Capacités, cochez les cases correspondant aux permissions suivantes :
Nom de la capacité
webservice/rest:use
moodle/user:viewalldetails
moodle/user:viewdetails
moodle/user:viewhiddendetails
moodle/site:viewuseridentity
moodle/course:view
moodle/course:viewparticipants
moodle/course:visibility
mod/assign:view
moodle/grade:viewall
moodle/site:readallmessages
Finalement, il s'agit d'attribuer ce rôle à notre utilisateur en vous rendant dans Utilisateurs > Permissions > Attribution des rôles systèmes, puis en sélectionnant le rôle AppScho et en y ajoutant notre compte de serveur AppScho API.
Notre jeton devrait maintenant avoir accès aux services web nécessaire à la bonne intégration à AppScho.