Configurazione connessione Moodle
Configurazione obbligatoria per l'ambiente di produzione
Il token di accesso Moodle viene memorizzato crittografato con Fernet. Per l'ambiente di produzione è obbligatorio impostare la variabile d'ambiente MOODLE_TOKEN_ENCRYPTION_KEY con una chiave Fernet di 44 caratteri. In sua assenza, l'applicazione utilizza un meccanismo predefinito inadatto alla produzione.
La connessione Moodle consente ai docenti di importare direttamente i risultati degli esami tramite API senza esportazione manuale in CSV. Questa configurazione viene eseguita una volta per istituzione da un amministratore.
Prerequisiti in Moodle
- Amministrazione sito → Plugin → Web Services → Panoramica: Attivare i Web Services
- Attivare il protocollo REST
- Creare un servizio esterno e assegnare le seguenti funzioni:
mod_quiz_get_quizzes_by_coursesmod_quiz_get_user_attemptsmod_quiz_get_attempt_reviewcore_webservice_get_site_info(per il pulsante Test)- Generare un token per un utente di sistema con le autorizzazioni necessarie
Generazione della chiave di cifratura
Eseguite il seguente comando sul server e inserite l'output come MOODLE_TOKEN_ENCRYPTION_KEY nel file .env:
python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
La chiave ha esattamente 44 caratteri e deve essere mantenuta segreta. In caso di smarrimento, tutti i token memorizzati devono essere reinseriti.
Configurazione della connessione

- Navigate come Admin a
/admin/integrations/moodle - Fate clic su Nuova connessione
- Compilate i campi:
| Campo | Esempio | Nota |
|---|---|---|
| Nome | "Moodle Università di Berna" | Nome visualizzato per i docenti |
| Base-URL | https://moodle.example.ch |
Senza / finale |
| Token | abc123... |
Copiato da Moodle |
- Fate clic su Testa connessione — ExamCraft chiama
core_webservice_get_site_info. In caso di successo compare il nome del sito Moodle come conferma. - Salva
Come funziona internamente l'importazione API
Durante l'importazione viene eseguita la seguente sequenza di query:
mod_quiz_get_quizzes_by_courses— elenca tutti i quiz nel corsomod_quiz_get_user_attempts— recupera tutti i tentativi per studentemod_quiz_get_attempt_review— recupera le risposte dettagliate per tentativo
La corrispondenza delle domande avviene tramite gli ID domanda di Moodle, che i docenti inseriscono una volta nell'ID-Round-Trip Moodle.
Isolamento multi-tenant
Ogni istituzione gestisce le proprie connessioni. I token e i dati di connessione non sono accessibili tra le istituzioni.