API Moodle

Configuration de Moodle pour un accès à l'API par AppScho

Introduction

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.

Configuration globale

Activer les Web Services Moodle

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 :

  1. Activer les services Web

  2. Activer des protocoles

    1. Activer le protocole REST

L'écran devrait ressembler à ceci :

Créer un service personnalisé

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.

Ajouter des fonctions au service AppScho

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 es 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.

Configuration utilisateur

Créer un compte de service pour AppScho

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.

Autoriser l'utilisateur à accéder au service externe

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.

Donner les permissions au compte de service

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é

Version Moodle mini

Nom de la capacité

Version Moodle mini

webservice/rest:use

Toutes

moodle/user:viewalldetails

Toutes

moodle/user:viewdetails

Toutes

moodle/user:viewhiddendetails

Toutes

moodle/site:viewuseridentity

Toutes

moodle/course:view

Toutes

moodle/course:viewparticipants

Toutes

moodle/course:visibility

Toutes

mod/assign:view

Toutes

moodle/grade:viewall

Toutes

moodle/site:readallmessages

Toutes

moodle/calendar:manageentries

4.x

moodle/calendar:managegroupentries

4.x

moodle/calendar:manageownentries

4.x

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.