Substituir els Open Badges natius de Moodle per Badges Ninja (millor dissenyador, mateixa API)

Moodle inclou Open Badges natius, però el dissenyador és limitat i l'experiència del destinatari queda tancada dins de Moodle. Emet credencials de Badges Ninja a partir de les finalitzacions de Moodle.

Nacho Coll Per Actualitzat 8 min de lectura
Moodle inclou Open Badges natius, però el dissenyador és limitat i l'experiència del destinatari queda tancada dins de Moodle. Emet credencials de Badges Ninja a partir de les finalitzacions de Moodle.

Moodle emet Open Badges de manera nativa des de la versió 2.5, i per a molts administradors de cursos això ja és motiu suficient per no buscar cap altra opció. Ve integrat, és gratuït i, tècnicament, produeix una credencial conforme als estàndards. Aleshores, per què tants administradors de Moodle acaben frustrats quan arriben a emetre la seva cinquantena insígnia?

La resposta honesta: el sistema d’insígnies de Moodle es va dissenyar per marcar una casella de compliment normatiu, no per ser un producte de credencials. Funciona, però funciona com funciona una funció afegida a un LMS — operativa, antiquada i limitada per les restriccions de la plataforma on viu. Si mai has intentat que una insígnia de Moodle sembli alguna cosa diferent d’una icona circular d’imatge predissenyada, o has vist un graduat preguntar «espera, on veig realment aquesta cosa?», ja coneixes aquest buit.

Això no és una crítica a Moodle — és un LMS excel·lent i el seu motor de criteris d’insígnies (finalització de curs, finalització d’activitat, atorgament manual, pertinença a cohort) està realment ben pensat per activar una credencial. El problema és tot el que ve després de l’activació: les eines de disseny, l’experiència del destinatari i la visibilitat de la insígnia fora de la teva instància de Moodle. Just per a això s’ha creat badges.ninja, i no cal que renunciïs a la lògica de finalització de Moodle per fer-lo servir — només has d’apuntar l’activador cap a un motor d’emissió diferent.

On es queden curtes les insígnies natives de Moodle

El dissenyador és un compositor d’imatges basat en coordenades, no una eina de disseny. L’editor d’insígnies de Moodle et permet triar una imatge base, afegir-hi algunes superposicions d’icones predefinides i ajustar la posició amb desplaçaments de píxels. No hi ha biblioteca de formes, ni sistema de paletes, ni més opcions de tipografia que les que ja porta el conjunt d’icones. Si la teva organització té una marca — un logotip, una paleta de colors, un llenguatge visual específic per a les teves certificacions —, l’editor de Moodle no la pot expressar. La majoria d’institucions acaben dissenyant l’art de la insígnia a Photoshop o Canva i pujant un PNG pla, cosa que anul·la el propòsit de tenir un dissenyador integrat.

Els destinataris necessiten iniciar sessió a Moodle per veure les seves pròpies insígnies. Les insígnies atorgades a un alumne viuen dins de la seva pàgina de perfil de Moodle. Si ja ha acabat el curs, ha oblidat les seves credencials institucionals, o la institució ja ha desactivat el seu compte, la insígnia pràcticament desapareix des del seu punt de vista — encara que l’assertion subjacent potser encara es pugui resoldre a través del connector backpack de Moodle o de la pàgina pública d’insígnies. No existeix cap lloc dedicat, amb marca pròpia i sempre accessible on un destinatari pugui iniciar sessió només amb el seu correu i veure totes les credencials que ha obtingut en qualsevol curs.

Compartir és un afegit de darrera hora. Moodle pot enviar insígnies a un servei compatible amb Mozilla Backpack, i exposa una URL de verificació pública per a cada insígnia, però no hi ha cap flux integrat d’«Afegir a LinkedIn», ni cap botó de compartir amb un sol clic, ni cap analítica d’interacció sobre si algú ha mirat mai la insígnia després d’emetre-la. Per a programes que volen que la insígnia funcioni com a màrqueting boca-orella — bootcamps, proveïdors de formació continuada, formació corporativa — això és un cost d’oportunitat real.

Les operacions massives són feixugues. Atorgar una insígnia a tota una cohort funciona si tothom completa l’activitat activadora dins de Moodle alhora. Però si necessites reomplir insígnies per a una cohort passada, importar finalitzacions històriques des d’un full de càlcul, o emetre una insígnia per alguna cosa que ha passat totalment fora de l’LMS, acabes escrivint SQL contra la base de dades de Moodle o lluitant amb eines d’importació CSV que no es van crear específicament per a insígnies.

El patró de substitució: mantén els activadors de Moodle, canvia l’emissor

No cal migrar fora de Moodle per solucionar això. El patró més net és deixar que Moodle continuï fent allò en què és bo — fer seguiment de la finalització de cursos, la finalització d’activitats, la pertinença a cohorts — i fer que cridi l’API de Badges Ninja en el moment en què es compleix una condició de finalització, en lloc d’atorgar (o a més d’atorgar) la seva insígnia nativa.

Moodle ho admet de diverses maneres:

  1. Webhook de finalització de curs / consulta (polling) dels Serveis Web (REST) de Moodle. L’API core_completion de Moodle exposa l’estat de finalització per usuari i per curs. Una tasca programada lleugera (una tasca cron programada de Moodle, o una tasca cron externa que consulti l’API REST de Moodle) pot fer polling de les inscripcions acabades de completar i, per a cadascuna, cridar l’endpoint d’atorgaments de Badges Ninja.

  2. Un hook des d’un plugin local. Si tens un desenvolupador a l’equip, el sistema d’esdeveniments de Moodle (\core\event\course_completed) pot ser observat per un petit plugin local que dispara una petició HTTP just en el moment en què es completa — sense retard de polling.

  3. Zapier/Make/n8n com a peça d’unió, si prefereixes no tocar el codi de Moodle — Moodle pot enviar esdeveniments de finalització a un receptor de webhooks que una eina d’automatització sense codi converteix en una crida d’atorgament.

Aquí tens la crida d’atorgament real, un cop tinguis el nom i el correu d’un usuari que ha completat el curs:

curl -X POST https://api.badges.ninja/awards \
  -H "X-Api-Key: bws_3f9a1c2d4e5b6a7c8d9e0f1a2b3c4d5e" \
  -H "Content-Type: application/json" \
  -d '{
    "badgeId": "badge_moodle_course_completion",
    "recipient": { "name": "Jordan Alvarez", "email": "learner@example.edu" },
    "issuedOn": "2026-08-31"
  }'

O en Node, dins de la tasca programada o el receptor de webhooks que estiguis fent servir:

const response = await fetch("https://api.badges.ninja/awards", {
  method: "POST",
  headers: {
    "X-Api-Key": process.env.BADGES_NINJA_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    badgeId: "badge_moodle_course_completion",
    recipient: { name: completedUser.fullname, email: completedUser.email },
    issuedOn: Date.now(),
  }),
});
const award = await response.json();

El correu del destinatari es guarda amb un hash SHA-256, l’atorgament rep automàticament una URL de verificació única, un codi QR i un certificat en PDF en A4, i — cosa fonamental — el destinatari el pot reclamar mitjançant un inici de sessió amb enllaç màgic a badges.ninja/me, sense necessitat de cap compte de Moodle separat. Consulta el format complet de la petició i la resposta a la referència de l’API d’atorgaments i a la guia d’autenticació per veure com funcionen les claus d’API d’extrem a extrem.

Si prefereixes fer-ho per lots — per exemple, reomplir tot un semestre de finalitzacions d’una tirada en lloc de connectar esdeveniments en temps real —, exporta les finalitzacions de Moodle com a CSV i utilitza directament el flux d’atorgament massiu, que admet pausa i represa per a fitxers grans. Això es tracta amb detall a com emetre Open Badges des d’un CSV.

Dissenyar la insígnia en si

Un cop la infraestructura està a punt, dissenyar la insígnia en si mateixa porta minuts, no un tiquet al teu equip web. El dissenyador visual et dona més de 80 plantilles de formes, un sistema real de paletes de colors, biblioteques d’icones i pujada de tipografies personalitzades — de manera que una insígnia per a «Advanced Statistics — Completed» pot semblar realment de la marca de la teva institució en comptes d’una icona genèrica d’assoliment de Moodle.

API Keys — empty state

Cada clau d’API té un àmbit definit i es pot revocar des del mateix tauler on gestiones insígnies i emissors, de manera que donar la credencial d’integració a un desenvolupador (o a una eina d’automatització com Zapier) no significa compartir l’inici de sessió del teu compte principal.

Create key — name form

Cara a cara: experiència del destinatari

Insígnia nativa de MoodleBadges Ninja
On la veuen els destinatarisDins del perfil de Moodle, cal iniciar sessióbadges.ninja/me, enllaç màgic, sense contrasenya
Verificació públicaSí, URL pública per insígniaSí, endpoint JSON-LD d’Open Badge v2.0
Eines de dissenyIcona fixa + desplaçaments de posicióMés de 80 plantilles, paletes, tipografies/icones personalitzades
Compartir a LinkedInManual, sense botó integratFlux natiu d’afegir al perfil de LinkedIn
Emissió massiva històricaSQL o solució manual amb CSVAtorgament massiu integrat amb pausa/represa
Visibilitat d’interaccióCapEstadístiques de visualització/compartició per atorgament
Accés després de deixar la institucióLligat a l’estat del compte de MoodlePersistent, propietat del destinatari

Moodle encara guanya en una cosa: si l’únic requisit és «que la insígnia existeixi, sigui tècnicament conforme a Open Badge v2.0 i visqui dins de l’LMS que l’alumne ja fa servir», les insígnies natives no costen res extra i no requereixen cap feina d’integració. El compromís apareix en el moment en què et comença a importar la qualitat del disseny, la portabilitat un cop acabat el curs, o convertir l’emissió en un senyal de captació/màrqueting — que és el cas de la majoria d’institucions, tard o d’hora.

Per a una visió més àmplia de com es comparen altres plataformes d’Open Badges en preu i funcionalitats, consulta la comparativa de la plataforma d’Open Badges més econòmica. I si la teva institució està valorant Open Badge v2.0 enfront de l’especificació més nova de credencials verificables, Open Badge v2 vs v3 explicat explica quina cal llançar realment avui.

Preparat per emetre la teva primera credencial verificable? Comença gratis a badges.ninja — dissenyador visual, pàgina de verificació pública, certificat en PDF, sortida en Open Badge v2.0. No cal targeta de crèdit.

Nacho Coll

Sobre l'autor

Founder & Engineer at Badges Ninja

Nacho founded Badges Ninja to make issuing verifiable digital credentials as simple as a single API call — Open Badge v2.0 badges and certificates, minted, hosted, and verifiable without standing up your own issuer infrastructure. Writes about the Open Badges spec, credential verification, and running a credentialing platform serverless on AWS, from the operator side of the wire.

Tornar al Blog

Articles Relacionats