Integrazione Grillo

Grillo chiede i quiz server-to-server, con lo stesso modello usato per Bias Coach.

Chiavi API

Istruzioni per Grillo

  1. Genera una chiave qui sopra e salvala nei segreti di Grillo (es. QUIZ_API_KEY).
  2. Salva l'indirizzo base https://quiz.pnlevolution.com in Grillo (es. QUIZ_API_URL).
  3. 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": "..." }
  ]
}
  • module accetta codice o id del modulo (anche module_id o topic, 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.