Integrazione Grillo
Grillo chiede i quiz server-to-server, con lo stesso modello usato per Bias Coach.
Chiavi API
Istruzioni per Grillo
- Genera una chiave qui sopra e salvala nei segreti di Grillo (es. QUIZ_API_KEY).
- Salva l'indirizzo base https://quiz.pnlevolution.com in Grillo (es. QUIZ_API_URL).
- Ogni chiamata deve avere l'intestazione
x-api-key; senza chiave valida risponde 401.
1. Elenco moduli attivi di un corso
curl "https://quiz.pnlevolution.com/api/public/modules?course=fsea1" \ -H "x-api-key: $QUIZ_API_KEY"
{
"course": { "slug": "fsea1", "name": "FSEA 1" },
"modules": [
{ "id": "uuid", "slug": "comunicazione", "title": "Comunicazione", "description": "",
"order": 1, "documents": 2, "quiz_ready": true }
]
}Senza il parametro course restituisce l'elenco dei corsi attivi.
2. Richiesta quiz a 3 domande
curl -X POST "https://quiz.pnlevolution.com/api/public/quiz" \
-H "x-api-key: $QUIZ_API_KEY" \
-H "content-type: application/json" \
-d '{
"course": "fsea1",
"module": "comunicazione",
"avoid_questions": ["Testo di una domanda già posta…"],
"nonce": "1739000000000-ab12cd",
"language": "it"
}'{
"questions": [
{ "question": "...", "options": ["...", "...", "...", "..."],
"correctIndex": 0, "explanation": "..." }
]
}moduleaccetta codice o id del modulo (anchemodule_idotopic, come con Bias Coach).avoid_questions: domande già viste dallo studente, da non ripetere (max 60).nonce: valore diverso a ogni richiesta per variare le domande (accettato anche come parametro nell'indirizzo).- Errori: 400 payload non valido · 401 chiave mancante · 404 modulo non trovato/disattivo · 422 modulo senza materiale · 429/502 riprovare più tardi.
