Zamenjava Moodlovih nativnih Open Badges z Badges Ninja (boljši oblikovalec, enak API)
Moodle ponuja nativne Open Badges, vendar je oblikovalec omejen, izkušnja prejemnika pa je zaklenjena znotraj Moodla. Namesto tega izdajajte poverila Badges Ninja neposredno iz zaključkov v Moodlu.
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.
Moodle izdaja Open Badges nativno že od različice 2.5 in za mnoge skrbnike tečajev je to dovolj velik razlog, da nikoli ne pogledajo drugam. Je vgrajen, je brezplačen in tehnično proizvede poverilo, skladno s standardi. Zakaj torej toliko skrbnikov Moodla do svojega petdesetega izdanega značka konča frustriranih?
Iskren odgovor: sistem značk v Moodlu je bil zasnovan za odkljukanje polja skladnosti, ne kot produkt za izdajanje poveril. Deluje, vendar deluje tako, kot deluje funkcija, privijačena na LMS — funkcionalno, zastarelo in omejeno z omejitvami platforme, znotraj katere živi. Če ste kdaj poskusili narediti, da bi značka Moodla izgledala kot karkoli drugega kot okrogla ikona iz kliparta, ali ste slišali diplomanta vprašati „počakajte, kje pa sploh vidim to stvar?”, potem to vrzel že poznate.
To ni obračunavanje z Moodlom — je odličen LMS in njegov mehanizem meril za značke (zaključek tečaja, zaključek dejavnosti, ročna podelitev, članstvo v kohorti) je resnično dobro premišljen za sprožitev poverila. Težava je vse, kar sledi po sprožitvi: orodja za oblikovanje, izkušnja prejemnika in vidnost značke zunaj vaše instance Moodla. Prav za to je zgrajen badges.ninja in za njegovo uporabo vam ni treba opustiti logike zaključevanja v Moodlu — sprožilec preprosto usmerite na drug mehanizem izdajanja.
Kje nativne značke Moodla ne zadostujejo
Oblikovalec je sestavljalnik slik na osnovi koordinat, ne orodje za oblikovanje. Urejevalnik značk v Moodlu vam omogoča izbiro osnovne slike, dodajanje nekaj vnaprej nastavljenih prekrivnih ikon in prilagajanje položaja s premiki v pikslih. Ni knjižnice oblik, ni sistema palet, ni izbire pisav zunaj tistega, kar je vgrajeno v nabor ikon. Če ima vaša organizacija znamko — logotip, barvno paleto, specifičen vizualni jezik za vaše certifikate — urednik Moodla tega ne more izraziti. Večina institucij na koncu oblikuje grafiko značk v Photoshopu ali Canvi in naloži ploščat PNG, kar izniči smisel imeti oblikovalca znotraj aplikacije.
Prejemniki potrebujejo prijavo v Moodle, da vidijo svoje lastne značke. Značke, podeljene učencu, živijo znotraj njegove profilne strani v Moodlu. Če je tečaj že zaključil, pozabil svoje institucionalne poverilnice, ali je institucija medtem ukinila njegov račun, je značka z njegove strani dejansko izginila — čeprav se osnovna trditev (assertion) morda še vedno lahko razreši prek Moodlovega backpack konektorja ali javne strani značke. Ne obstaja namensko, znamčeno, vedno dosegljivo mesto, kjer bi se prejemnik lahko prijavil samo z e-pošto in videl vsa poverila, ki jih je kdaj pridobil pri vseh tečajih.
Deljenje je postranska misel. Moodle lahko potisne značke v storitev, združljivo z Mozilla Backpack, in izpostavi javni URL za preverjanje vsake značke, vendar nima vgrajenega poteka „Dodaj na LinkedIn”, nobenega gumba za deljenje z enim klikom in nobene analitike vključenosti o tem, ali je kdo sploh pogledal značko po izdaji. Za programe, ki želijo, da značka deluje kot marketing od ust do ust — bootcampi, ponudniki nadaljnjega izobraževanja, korporativno usposabljanje — je to resnična izgubljena priložnost.
Množične operacije so nerodne. Podelitev značke celotni kohorti deluje, če vsi hkrati zaključijo sprožitveno dejavnost znotraj Moodla. Če pa morate za nazaj dopolniti značke za pretekle kohorte, uvoziti zgodovinske zaključke iz preglednice ali izdati značko za nekaj, kar se je zgodilo popolnoma zunaj LMS-ja, se znajdete v pisanju SQL-ja neposredno proti bazi podatkov Moodla ali v boju z orodji za uvoz CSV, ki niso bila zgrajena posebej za značke.
Vzorec zamenjave: obdržite Moodlove sprožilce, zamenjajte izdajatelja
Za to popravilo vam ni treba migrirati stran od Moodla. Najčistejši vzorec je, da Moodle še naprej počne to, v čemer je dober — sledenje zaključku tečaja, zaključku dejavnosti, članstvu v kohorti — in da ob sprožitvi pogoja zaključka pokliče API Badges Ninja, namesto (ali poleg) podelitve svoje nativne značke.
Moodle to podpira na nekaj načinov:
-
Webhook ob zaključku tečaja / poizvedovanje prek Moodle Web Services (REST). API core_completion v Moodlu izpostavlja stanje zaključka za vsakega uporabnika in tečaj. Lahkotna razporejena naloga (razporejena cron naloga v Moodlu ali zunanje opravilo cron, ki kliče REST API Moodla) lahko poizveduje po novo zaključenih vpisih in za vsakega pokliče končno točko za podeljevanje značk Badges Ninja.
-
Kavelj lokalnega vtičnika. Če imate v ekipi razvijalca, lahko sistem dogodkov Moodla (
\core\event\course_completed) opazuje majhen lokalni vtičnik, ki sproži HTTP zahtevo takoj ob zaključku — brez zamude zaradi poizvedovanja. -
Zapier/Make/n8n kot vezivo, če se raje izognete poseganju v kodo Moodla — Moodle lahko potisne dogodke zaključka na sprejemnik webhookov, ki jih orodje za avtomatizacijo brez kode pretvori v klic za podelitev.
Tukaj je dejanski klic za podelitev, ko že imate ime in e-pošto uporabnika, ki je zaključil:
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"
}'
Ali v Node, znotraj katere koli razporejene naloge ali sprejemnika webhookov, ki ga poganjate:
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();
E-pošta prejemnika je pri shranjevanju zgoščena s SHA-256, podelitev samodejno dobi edinstven URL za preverjanje, QR kodo in potrdilo v obliki A4 PDF, in — kar je ključno — prejemnik ga lahko prevzame s prijavo prek čarobne povezave (magic link) na badges.ninja/me, brez potrebe po ločenem računu v Moodlu. Celotno obliko zahteve in odgovora si oglejte v referenci API za awards, za delovanje API ključev od začetka do konca pa v vodniku po avtentikaciji.
Če bi to raje izvedli paketno — na primer za nazaj dopolnili zaključke celega semestra v enem koraku namesto povezovanja dogodkov v realnem času — izvozite zaključke iz Moodla kot CSV in uporabite neposredno potek množičnega podeljevanja, ki pri velikih datotekah podpira premor/nadaljevanje. To je podrobno opisano v članku kako izdati Open Badges iz CSV.
Oblikovanje same značke
Ko je povezava vzpostavljena, dejansko oblikovanje značke traja minute, ne prijave vaši spletni ekipi. Vizualni oblikovalec vam ponuja več kot 80 predlog oblik, resničen sistem barvnih palet, knjižnice ikon in nalaganje lastnih pisav — tako da lahko značka za „Napredna statistika — zaključeno” resnično izgleda, kot da pripada znamki vaše institucije, namesto generični ikoni dosežka Moodla.

Vsak API ključ je obseg omejen in preklicljiv iz iste nadzorne plošče, kjer upravljate značke in izdajatelje, tako da izročitev integracijskega poverila razvijalcu (ali orodju za avtomatizacijo, kot je Zapier) ne pomeni deljenja prijave v vaš glavni račun.

Drug ob drugem: izkušnja prejemnika
| Nativna značka Moodla | Badges Ninja | |
|---|---|---|
| Kje jo prejemniki vidijo | Znotraj profila Moodla, zahteva prijavo | badges.ninja/me, čarobna povezava, brez gesla |
| Javno preverjanje | Da, javni URL za vsako značko | Da, končna točka Open Badge v2.0 JSON-LD |
| Orodja za oblikovanje | Fiksna ikona + zamiki položaja | 80+ predlog, palete, lastne pisave/ikone |
| Deljenje na LinkedInu | Ročno, brez vgrajenega gumba | Nativen potek Add-to-LinkedIn-Profile |
| Množično izdajanje za nazaj | SQL ali ročna rešitev s CSV | Vgrajena množična podelitev s premorom/nadaljevanjem |
| Vidnost vključenosti | Nobena | Statistika ogledov/deljenj za vsako podelitev |
| Dostop po odhodu iz institucije | Vezan na stanje računa Moodla | Trajen, v lasti prejemnika |
Moodle še vedno zmaga pri eni stvari: če je vaša edina zahteva „značka obstaja, je tehnično skladna z Open Badge v2.0 in živi znotraj LMS-ja, ki ga učenec že uporablja”, nativne značke ne stanejo nič dodatnega in ne zahtevajo nobenega integracijskega dela. Kompromis se pokaže v trenutku, ko vam je mar za kakovost oblikovanja, prenosljivost po koncu tečaja ali spremembo izdajanja v signal za zaposlovanje/trženje — kar je navsezadnje večina institucij.
Za širši pogled na to, kako se druge platforme za Open Badges primerjajo po ceni in funkcijah, si oglejte primerjavo najcenejših platform za Open Badges. In če vaša institucija tehta Open Badge v2.0 proti novejši specifikaciji preverljivih poveril, Open Badge v2 proti v3 razloženo opisuje, katero dejansko uvesti danes.
Pripravljeni izdati svoje prvo preverljivo poverilo? Začnite brezplačno na badges.ninja — vizualni oblikovalec, javna stran za preverjanje, PDF potrdilo, izhod Open Badge v2.0. Kreditna kartica ni potrebna.
Kako je nastal ta članek
Nekateri prispevki na tem blogu so pripravljeni s pomočjo pomočnika UI, nato pa jih ekipa Badges Ninja pregleda, preveri dejstva in uredi pred objavo. Vsak primer kode in cena sta preverjena z dejanskim izdelkom. Več o našem uredniškem procesu in procesu UI preberite na naši strani o uredniškem procesu .

O avtorju
Nacho Coll
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.

