Как да издадете Open Badges от CSV файл за под 5 минути
Стъпка по стъпка: качете CSV с получатели, изберете значка и натиснете Издай. Спирайте и продължавайте по средата на партидата, повтаряйте неуспешните редове, експортирайте резултатите. Работи за групи от 10 или 10 000.
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.
Ако някога сте издавали удостоверения на цяла група един по един получател, вече знаете какъв е проблемът: това не се мащабира над около десет души, преди да се превърне в цял следобед на копиране и поставяне на имена и имейли. Група от 40 души на буткамп, списък от 500 участници в конференция или внедряване на корпоративно обучение за 5000 души — на всички им трябва едно и също: качете списък, изберете значка, кликнете Издай и си тръгнете.
Точно това прави Bulk Credentials в https://badges.ninja. Това ръководство обхваща целия процес: подготовката на CSV файла, конфигурирането на партидата, наблюдението как тя се изпълнява и справянето с бъркотиите от реалния свят — ред на получател с печатна грешка, партида, която прекъсва по средата, или програма, която иска да издава по същия начин от собствените си системи вместо от таблото за управление.
Преди да започнете: какво ви трябва
Две неща, като и двете вероятно вече имате:
- Значка — проектирана веднъж във визуалния дизайнер и използвана повторно за всеки получател в партидата. Ако още не сте изработили такава, вижте нашето ръководство за проектиране на първото ви удостоверение с възможност за проверка.
- CSV с получатели — име, имейл и (по избор) дата на издаване. Това е цялата схема.
Не ви трябва издателски акаунт за всеки получател, пощенски сървър или какъвто и да е код. Всичко в този раздел се случва в таблото за управление.
Стъпка 1: Подгответе CSV файла
Форматът на списъка с получатели е умишлено минимален:
name,email,issued_on
Maria Gonzalez,maria@example.com,2026-07-01
David Kim,david@example.com,2026-07-01
Priya Patel,priya@example.com,
- name — задължително. Попълва полето за получател в твърдението (assertion) и в удостоверението.
- email — задължително. Това става идентичността на получателя в твърдението Open Badge v2.0 — хеширано с отделна сол за всяко удостоверение преди съхранение, никога не се пази в чист текст.
- issued_on — по избор. Оставете го празно и партидата използва момента, в който се обработва всеки ред; задайте го изрично, ако попълвате със задна дата група, която всъщност е приключила миналия месец.
Повечето собственици на програми експортират това направо оттам, където вече проследяват завършванията — Airtable, Google Sheets, електронна таблица, предадена от инструктор, или CSV, изтеглен от дневника с оценки на LMS. Не е необходим специален инструмент за експорт; работи всеки CSV с тези три колони.
Чести капани при CSV (и как визуализацията ги улавя)
Няколко проблема се появяват постоянно в реалните списъци с получатели, обикновено защото CSV файлът е сглобен чрез сливане на два или три изходни листа:
- Празни интервали в края на имейл адресите — копиране от PDF списък или експорт от Google формуляр често носи невидим интервал. Изглежда добре в клетка на електронна таблица, но не преминава проверката на имейла при качване.
- Дублирани редове — един и същ получател се появява два пъти, защото списък на групата и списък на закъснели регистрации са свързани без премахване на дубликатите.
- Непоследователни формати на датите — една колона с
2026-07-01, смесена с07/01/2026от друг експорт. Придържайте се към ISO 8601 (YYYY-MM-DD) и това напълно изчезва. - Несъответствия в главните и малките букви на заглавията —
EmailсрещуemailсрещуE-mail. Анализаторът е снизходителен към често срещаните варианти, но напълно персонализирано име на заглавие няма да се съпостави автоматично.
Нито един от тези проблеми не е фатален — стъпката на визуализация (по-долу) извежда всеки от тях наяве, преди да се издаде каквото и да е, така че корекцията е „редактирайте таблицата, качете отново“ вместо „разберете кой от 3000 получатели е получил повредена значка“.
Стъпка 2: Конфигурирайте партидата
От таблото за управление отворете Credentials → Bulk Credentials и изберете значката, която издавате. Това е стъпката, в която задавате всичко, което важи за цялата партида: самата значка, обща дата на издаване, ако не поставяте дати за всеки ред в CSV, и (ако издателският ви профил има такъв) организационния LinkedIn ID, който ще позволи на всеки получател да добави удостоверението към профила си с едно кликване.

Това е добър момент да проверите отново дали значката, която сте избрали, е финалната версия — получателите ще видят изображението и критериите, прикачени към нея в момента на издаване, а не това, което актуализирате по-късно.
Стъпка 3: Качване и визуализация
Пуснете вашия CSV и платформата го анализира, показва ви таблица за визуализация и отбелязва всичко, което не може да обработи — липсващ имейл, неправилна дата, дублиран ред. Нищо не се издава, докато не потвърдите визуализацията.

Тази стъпка на визуализация е по-важна, отколкото изглежда. Печатна грешка в един ред на CSV с 2000 реда лесно се пропуска с око и е много по-евтино да я уловите, преди 1999 правилни реда вече да са издадени, отколкото да се опитвате да я разплетете след това. Поправете отбелязаните редове в таблицата си, качете отново и визуализацията се актуализира.
Стъпка 4: Пуснете партидата
Натиснете Издай и партидата започва да се обработва. Лента за напредъка проследява завършените спрямо оставащите редове, а партидата се изпълнява от страната на сървъра — не е нужно да държите раздела отворен, а затварянето на лаптопа по средата на партидата не губи мястото ви.
Тази последна част заслужава да се изясни, защото това е детайлът, който всъщност има значение за големите групи: състоянието на партидата живее на сървъра, а не в браузъра ви. Ако връзката ви прекъсне, лаптопът ви заспи или просто затворите раздела, защото започва среща, партидата продължава да се изпълнява (или се възобновява точно оттам, където е спряла, ако сте я поставили на пауза), вместо да започва от нулата. За група от 40 души на буткамп това е приятна екстра. За внедряване на 5000 реда в корпорация това е разликата между „просто работи“ и „някой трябва да наглежда раздел на браузъра двадесет минути“.
Можете също така умишлено да поставите на пауза изпълняваща се партида — да речем, някой посочва, че текстът на критериите за значката се нуждае от корекция по средата на изпълнение от 3000 реда — коригирайте проблема и възобновете, без да преиздавате вече завършените редове.
Стъпка 5: Справяне с неуспехите
Реалните списъци с получатели имат лоши редове: имейл с печатна грешка в домейна, поле за име, което всъщност е празно, дублиран запис от сливането на два експортирани листа. Когато ред се провали, партидата не спира — тя продължава да обработва останалите и отбелязва неуспеха за преглед след това. Получавате експорт на резултатите, който показва точно кои редове са успели и кои не, така че можете да поправите само неуспешните редове и да пуснете отново малка последваща партида, вместо да проверявате отново целия списък.
Това има значение за навика за експорт на CSV, който вече е разпространен в таблото за управление на удостоверенията — можете да изтеглите CSV на това, което всъщност е издадено, във всеки момент, да го сравните с изходния си списък и да знаете точно на кого още му трябва значка.
Пътят през API: същият процес, без табло за управление
Всичко по-горе предполага, че някой седи пред таблото за управление и кликва през съветника. Ако вашите завършвания вече живеят в система — LMS, CRM, автоматизация на електронна таблица — можете да управлявате същия процес на масови удостоверения директно от Awards API.
Минимално обаждане за издаване на един получател изглежда така:
curl -X POST https://api.badges.ninja/awards \
-H "X-Api-Key: bws_1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d" \
-H "Content-Type: application/json" \
-d '{
"badgeId": "badge_9f8e7d6c5b4a",
"recipient": {
"name": "Maria Gonzalez",
"email": "maria@example.com"
},
"issuedOn": "2026-07-01T00:00:00Z"
}'
Или на Python, преминавайки през редовете, прочетени от същия CSV, който иначе бихте качили на ръка:
import csv
import requests
API_KEY = "bws_1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d"
BADGE_ID = "badge_9f8e7d6c5b4a"
with open("recipients.csv") as f:
for row in csv.DictReader(f):
requests.post(
"https://api.badges.ninja/awards",
headers={"X-Api-Key": API_KEY},
json={
"badgeId": BADGE_ID,
"recipient": {"name": row["name"], "email": row["email"]},
"issuedOn": row.get("issued_on") or None,
},
)
Струва си да посегнете към това, когато издаването на удостоверения се задейства от нещо съвсем друго — уебхук за завършване на курс, промяна на етапа в CRM, изпращане на формуляр — вместо човек ръчно да експортира CSV. Обхващаме удостоверяването и пълната форма на заявката/отговора в бързото ръководство за API. Всяко удостоверение, създадено по този начин, е идентично на създаденото чрез съветника в таблото за управление: същото твърдение Open Badge v2.0, същия URL за проверка, същото PDF удостоверение.
Съветник в таблото за управление срещу API: кое всъщност искате?
| Dashboard Bulk Credentials | Awards API | |
|---|---|---|
| Най-добро за | Еднократна или случайна партида (завършване на група, посещаемост на конференция) | Повтарящ се тригер (всяко завършване на курс, всяка покупка) |
| Усилие за настройка | Никакво — експортирайте CSV, качете го | Еднократна интеграционна работа (уебхук или скрипт) |
| Кой го изпълнява | Собственик на програмата, без код | Който и да е собственик на системата, задействаща тригера |
| Обработка на неуспехи | Визуализация + експорт на резултати за всеки ред | HTTP статус за всяка заявка, обработен във вашата собствена логика за повторни опити |
Повечето екипи започват със съветника в таблото за управление, защото не изисква нищо освен CSV, и преминават към API едва след като същата партида е изпълнена ръчно три или четири пъти и моделът очевидно си заслужава да бъде автоматизиран.
Поверителност: какво всъщност се съхранява
CSV с имена и имейли е лични данни и си струва да знаете какво се случва с него след качването. Имейл адресът на получателя никога не се съхранява в чист текст върху самото удостоверение — хешира се с отделна сол за всяко удостоверение като част от твърдението Open Badge v2.0, следвайки формата за идентичност на получателя hashed от спецификацията. Този хеш е това, което верификаторът проверява, а не суровия адрес. Полето за име се съхранява така, както е въведено, тъй като е предназначено да бъде видимо на удостоверението и страницата за проверка. Ако ред трябва да се коригира след издаване — най-често сгрешено име — можете да редактирате или отмените отделното удостоверение от таблото за управление на удостоверенията, без да засягате останалата част от партидата.
След партидата: уведомете получателите
Издаването на значката и уведомяването на получателя за нея са две различни стъпки. Ако вашият CSV още не задейства имейл чрез вашата собствена система, процесът за масово споделяне в таблото за управление ви позволява да изберете множество удостоверения, които току-що сте създали, и да изпратите персонализиран имейл за споделяне до всички тях наведнъж — вижте масовото изпращане на имейли за споделяне за пълното ръководство, включително как персонализацията за всеки получател (име, изображение на значката, връзка за проверка) се замества автоматично.
Кога Bulk Credentials е правилният инструмент
Масовото издаване е правилният избор, когато рамката „партида“ отговаря на реалния свят: група, приключила в един и същи ден, конференция, която току-що е завършила, внедряване на обучение, достигащо краен срок за съответствие. Ако вместо това издавате еднократни удостоверения при достигане на индивидуални крайъгълни камъни — едно повишение, един завършен проект — формулярът за единично удостоверение е по-бърз от сглобяването на CSV с един ред.
За всичко повтарящо се — един и същ курс, който се провежда всеки месец, непрекъснат конвейер за въвеждане — пътят през API по-горе си струва да се настрои веднъж. Той превръща „изпълнявай масови удостоверения ръчно за всяка група“ в „завършванията вече издават удостоверения автоматично“, което е версията на този работен процес, която повечето собственици на програми всъщност искат след втората или третата ръчна партида.
Готови ли сте да издадете първото си удостоверение с възможност за проверка? Започнете безплатно на badges.ninja — визуален дизайнер, публична страница за проверка, PDF удостоверение, изход Open Badge v2.0. Не се изисква кредитна карта.
Как беше създадена тази статия
Някои публикации в този блог се изготвят с помощта на AI асистент, след което се преглеждат, проверяват и редактират от екипа на Badges Ninja преди публикуване. Всеки примерен код и цена се проверяват спрямо реалния продукт. Прочетете повече за нашия редакционен и AI процес на нашата страница за редакционния процес .

За автора
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.
Още от Nacho Coll
- Как да добавите бутон „Add to Profile“ на LinkedIn към вашите Open Badges20.08.2026 г. · 10мин четене
- Open Badges vs. PDF сертификати: кое е подходящо за вашата програма през 2026 г.?10.08.2026 г. · 6мин четене
- Open Badge v2 срещу v3 обяснено: коя спецификация да използвате днес?6.08.2026 г. · 10мин четене


