Byt ut Moodles inbyggda Open Badges mot Badges Ninja (bättre designverktyg, samma API)

Moodle levereras med inbyggda Open Badges, men designverktyget är begränsat och mottagarupplevelsen är inlåst i Moodle. Utfärda Badges Ninja-meriter från Moodle-genomföranden istället.

Nacho Coll Av Uppdaterad 7 min läsning
Moodle levereras med inbyggda Open Badges, men designverktyget är begränsat och mottagarupplevelsen är inlåst i Moodle. Utfärda Badges Ninja-meriter från Moodle-genomföranden istället.

Moodle har utfärdat Open Badges inbyggt sedan version 2.5, och för många kursadministratörer är det skäl nog att aldrig se sig om efter något annat. Det är inbyggt, det är gratis, och det producerar tekniskt sett ett standardkompatibelt meritbevis. Så varför blir så många Moodle-administratörer frustrerade vid det femtionde märket de utfärdar?

Det ärliga svaret: Moodles märkessystem designades för att bocka av en efterlevnadsruta, inte för att vara en produkt för digitala meriter. Det fungerar, men det fungerar på det sätt en funktion fastskruvad på ett LMS fungerar – funktionellt, daterat och instängt av begränsningarna hos plattformen den lever i. Om du någonsin försökt få ett Moodle-märke att se ut som något annat än en rund clipart-ikon, eller hört en student fråga ”vänta, var ser jag egentligen den här igen?”, känner du redan till glappet.

Det här är ingen nedgörande av Moodle – det är ett utmärkt LMS, och dess motor för märkeskriterier (kursgenomförande, aktivitetsgenomförande, manuell tilldelning, kohortmedlemskap) är verkligen genomtänkt för att utlösa ett meritbevis. Problemet är allt som händer efter utlösningen: designverktygen, mottagarupplevelsen och märkets synlighet utanför din Moodle-instans. Det är precis den delen badges.ninja är byggt för, och du behöver inte ge upp Moodles genomförandelogik för att använda det – du pekar bara utlösaren mot en annan utfärdandemotor.

Var Moodles inbyggda märken kommer till korta

Designverktyget är en koordinatbaserad bildkompositör, inte ett designverktyg. Moodles märkesredigerare låter dig välja en basbild, lägga på några förinställda ikonöverlägg och justera position med pixelförskjutningar. Det finns inget formbibliotek, inget palettsystem, inga typsnittsval utöver de som är inbakade i ikonuppsättningen. Om din organisation har ett varumärke – en logotyp, en färgpalett, ett specifikt visuellt språk för dina certifieringar – kan Moodles redigerare inte uttrycka det. De flesta institutioner slutar med att designa märkesgrafik i Photoshop eller Canva och laddar upp en platt PNG, vilket gör hela poängen med ett inbyggt designverktyg om intet.

Mottagare behöver en Moodle-inloggning för att se sina egna märken. En students tilldelade märken lever på deras Moodle-profilsida. Om de har gått vidare från kursen, glömt sina institutionella inloggningsuppgifter, eller institutionen sedan dess avaktiverat deras konto, är märket i praktiken borta från deras sida – även om det underliggande påståendet (assertion) fortfarande kan lösas upp via Moodles backpack-koppling eller den publika märkessidan. Det finns ingen dedikerad, varumärkesanpassad, alltid nåbar plats där en mottagare kan logga in med bara sin e-postadress och se varje meritbevis de någonsin fått, från alla kurser.

Delning är en eftertanke. Moodle kan skicka märken till en Mozilla Backpack-kompatibel tjänst, och det exponerar en publik verifieringsadress för varje märke, men det finns ingen inbyggd ”Lägg till på LinkedIn”-funktion, ingen delningsknapp med ett klick, och ingen engagemangsstatistik för om någon någonsin tittat på märket efter att det utfärdats. För program som vill att märket ska fungera som word-of-mouth-marknadsföring – bootcamper, leverantörer av fortbildning, företagsutbildning – är det en verklig alternativkostnad.

Massoperationer är klumpiga. Att tilldela ett märke till en hel kohort fungerar om alla genomför den utlösande aktiviteten i Moodle samtidigt. Men om du behöver komplettera märken i efterhand för en tidigare kohort, importera historiska genomföranden från ett kalkylblad, eller utfärda ett märke för något som hände helt utanför LMS:et, fastnar du med att skriva SQL mot Moodles databas eller kämpa med CSV-importverktyg som inte var byggda specifikt för märken.

Ersättningsmönstret: behåll Moodles utlösare, byt utfärdare

Du behöver inte migrera bort från Moodle för att lösa det här. Det renaste mönstret är att låta Moodle fortsätta göra det den är bra på – spåra kursgenomförande, aktivitetsgenomförande, kohortmedlemskap – och låta den anropa Badges Ninja-API:et i samma stund som ett genomförandevillkor utlöses, istället för (eller vid sidan av) att tilldela sitt inbyggda märke.

Moodle stödjer det här på några olika sätt:

  1. Webhook för kursgenomförande / polling via Moodle Web Services (REST). Moodles core_completion-API exponerar genomförandestatus per användare och kurs. En lättviktig schemalagd uppgift (en schemalagd cron-uppgift i Moodle, eller ett externt cron-jobb som anropar Moodles REST-API) kan polla efter nyligen genomförda registreringar och, för var och en, anropa Badges Ninjas tilldelningsendpoint.

  2. En hook via ett lokalt plugin. Om du har en utvecklare i teamet kan Moodles händelsesystem (\core\event\course_completed) observeras av ett litet lokalt plugin som skickar en HTTP-förfrågan i samma ögonblick som genomförandet sker – utan pollningsfördröjning.

  3. Zapier/Make/n8n som lim, om du hellre undviker att röra Moodles kodbas – Moodle kan skicka genomförandehändelser till en webhook-mottagare som ett no-code-automatiseringsverktyg omvandlar till ett tilldelningsanrop.

Så här ser själva tilldelningsanropet ut, när du har namn och e-post för en användare som genomfört kursen:

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"
  }'

Eller i Node, inuti vilken schemalagd uppgift eller webhook-mottagare du än kör:

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();

Mottagarens e-post SHA-256-hashas vid lagring, tilldelningen får automatiskt en unik verifieringsadress, en QR-kod och ett A4 PDF-certifikat, och – avgörande – mottagaren kan hämta ut det genom en magic-link-inloggning på badges.ninja/me, utan att behöva ett separat Moodle-konto. Se den fullständiga request/response-strukturen i API-referensen för tilldelningar och autentiseringsguiden för hur API-nycklar fungerar från början till slut.

Om du hellre vill köra det i batch – säg, komplettera en hel termins genomföranden i en enda omgång istället för att koppla upp realtidshändelser – exportera genomförandena från Moodle som en CSV och använd massfunktionen för tilldelning direkt, som stödjer paus/återupptagning för stora filer. Det behandlas i detalj i hur man utfärdar Open Badges från en CSV.

Att designa själva märket

När kopplingen väl är på plats tar den faktiska märkesdesignen minuter, inte ett ärende till ditt webbteam. Det visuella designverktyget ger dig 80+ formmallar, ett riktigt färgpalettssystem, ikonbibliotek och uppladdning av egna typsnitt – så att ett märke för ”Avancerad statistik – Genomförd” faktiskt kan se ut som att det hör till din institutions varumärke istället för en generisk Moodle-prestationsikon.

API-nycklar – tomt läge

Varje API-nyckel är avgränsad och kan återkallas från samma instrumentpanel där du hanterar märken och utfärdare, så att lämna över integrationsuppgiften till en utvecklare (eller ett automatiseringsverktyg som Zapier) innebär inte att du delar inloggningen till ditt huvudkonto.

Skapa nyckel – namnformulär

Sida vid sida: mottagarupplevelsen

Moodles inbyggda märkeBadges Ninja
Var mottagare ser detInne i Moodle-profilen, kräver inloggningbadges.ninja/me, magic-link, inget lösenord
Publik verifieringJa, publik URL per märkeJa, Open Badge v2.0 JSON-LD-endpoint
DesignverktygFast ikon + positionsförskjutningar80+ mallar, paletter, egna typsnitt/ikoner
Delning på LinkedInManuell, ingen inbyggd knappInbyggt flöde för att lägga till på LinkedIn-profilen
Massutfärdande i efterhandSQL eller manuell CSV-lösningInbyggd masstilldelning med paus/återupptagning
Synlighet för engagemangIngenVisnings-/delningsstatistik per tilldelning
Åtkomst efter att man lämnat institutionenKopplad till Moodle-kontots statusBestående, ägs av mottagaren

Moodle vinner ändå på en punkt: om ditt enda krav är att ”märket existerar, är tekniskt kompatibelt med Open Badge v2.0, och lever inuti det LMS studenten redan använder”, kostar inbyggda märken inget extra och kräver inget integrationsarbete. Avvägningen visar sig i det ögonblick du bryr dig om designkvalitet, portabilitet efter kursens slut, eller att göra utfärdandet till en rekryterings-/marknadsföringssignal – vilket med tiden gäller de flesta institutioner.

För en bredare bild av hur andra Open Badges-plattformar jämför sig i pris och funktioner, se jämförelsen av de billigaste Open Badges-plattformarna. Och om din institution väger Open Badge v2.0 mot den nyare specifikationen för verifierbara meriter, går Open Badge v2 mot v3 förklarat igenom vilken du faktiskt bör lansera idag.

Redo att utfärda ditt första verifierbara meritbevis? Kom igång gratis på badges.ninja – visuellt designverktyg, publik verifieringssida, PDF-certifikat, Open Badge v2.0-utdata. Inget kreditkort krävs.

Nacho Coll

Om författaren

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.

Tillbaka till Bloggen

Relaterade artiklar