Cara Mengeluarkan Open Badges daripada CSV dalam Masa Kurang daripada 5 Minit
Langkah demi langkah: muat naik CSV penerima, pilih lencana anda, tekan Keluarkan. Jeda dan sambung semula di tengah kelompok, cuba semula kegagalan, eksport keputusan. Berfungsi untuk kohort 10 atau 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.
Jika anda pernah mengeluarkan credential kepada sesebuah kohort seorang penerima pada satu masa, anda sudah tahu masalahnya: ia tidak berskala melebihi kira-kira sepuluh orang sebelum ia bertukar menjadi satu petang menyalin dan menampal nama serta e-mel. Kohort bootcamp 40 orang, senarai peserta persidangan 500 orang, atau pelancaran latihan korporat 5,000 orang semuanya memerlukan perkara yang sama — muat naik senarai, pilih lencana, klik Keluarkan, dan pergi.
Itulah tepat yang dilakukan oleh Bulk Credentials di https://badges.ninja. Panduan ini merangkumi keseluruhan aliran: menyediakan CSV anda, mengkonfigurasi kelompok, memerhati ia berjalan, dan mengendalikan situasi dunia sebenar yang berselerak — baris penerima dengan kesilapan taip, kelompok yang terganggu di pertengahan jalan, atau program yang mahu mengeluarkan dengan cara sama daripada sistemnya sendiri dan bukannya daripada papan pemuka.
Sebelum Anda Bermula: Apa Yang Anda Perlukan
Dua perkara, yang kedua-duanya mungkin anda sudah ada:
- Sebuah lencana — direka sekali dalam pereka visual, digunakan semula untuk setiap penerima dalam kelompok. Jika anda belum membina satu lagi, lihat panduan kami tentang mereka bentuk sijil boleh disahkan pertama anda.
- Sebuah CSV penerima — nama, e-mel, dan (secara pilihan) tarikh pengeluaran. Itulah keseluruhan skemanya.
Anda tidak memerlukan akaun pengeluar bagi setiap penerima, pelayan mel, atau sebarang kod. Segala-galanya dalam bahagian ini berlaku dalam papan pemuka.
Langkah 1: Sediakan CSV Anda
Format senarai penerima sengaja dibuat seringkas mungkin:
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 — wajib. Mengisi medan penerima pada assertion dan sijil.
- email — wajib. Ini menjadi identiti penerima pada assertion Open Badge v2.0 — di-hash dengan salt setiap credential sebelum ia disimpan, tidak sekali-kali disimpan dalam teks biasa.
- issued_on — pilihan. Biarkan ia kosong dan kelompok akan menggunakan saat setiap baris diproses; tetapkannya secara eksplisit jika anda mengisi semula kohort yang sebenarnya telah tamat bulan lepas.
Kebanyakan pemilik program mengeksportnya terus daripada tempat mereka sudah menjejaki penyempurnaan — Airtable, Google Sheets, hamparan yang diserahkan oleh seorang pengajar, atau CSV yang ditarik daripada buku gred LMS. Tiada alat eksport khas diperlukan; mana-mana CSV dengan tiga lajur tersebut berfungsi.
Perangkap CSV yang Biasa (dan Bagaimana Pratonton Menangkapnya)
Segelintir isu muncul secara berterusan dalam senarai penerima dunia sebenar, biasanya kerana CSV itu dihimpunkan dengan menggabungkan dua atau tiga helaian sumber:
- Ruang kosong di hujung alamat e-mel — salin-tampal daripada senarai PDF atau eksport Google Form sering membawa ruang tidak kelihatan. Ia kelihatan elok dalam sel hamparan tetapi gagal pengesahan e-mel semasa muat naik.
- Baris pendua — penerima yang sama muncul dua kali kerana senarai kohort dan senarai pendaftar lewat digabungkan tanpa penyahduaan.
- Format tarikh tidak konsisten — satu lajur
2026-07-01bercampur dengan07/01/2026daripada eksport berbeza. Kekal dengan ISO 8601 (YYYY-MM-DD) dan ini akan hilang sepenuhnya. - Ketidakpadanan huruf besar/kecil pengepala —
EmaillawanemaillawanE-mail. Penghurai bertolak ansur dengan varian biasa, tetapi nama pengepala yang benar-benar tersuai tidak akan dipetakan secara automatik.
Tiada satu pun daripada ini yang membawa maut — langkah pratonton (di bawah) memaparkan setiap satunya sebelum apa-apa dikeluarkan, jadi penyelesaiannya ialah “edit hamparan, muat naik semula” dan bukannya “fikirkan yang manakah antara 3,000 penerima mendapat lencana yang rosak”.
Langkah 2: Konfigurasi Kelompok
Daripada papan pemuka, buka Credentials → Bulk Credentials dan pilih lencana yang anda keluarkan. Ini ialah langkah di mana anda menetapkan apa-apa yang terpakai untuk keseluruhan kelompok: lencana itu sendiri, tarikh pengeluaran dikongsi jika anda tidak meletakkan tarikh setiap baris dalam CSV, dan (jika profil pengeluar anda mempunyai satu) ID organisasi LinkedIn yang akan membolehkan setiap penerima menambah credential itu ke profil mereka dengan satu klik.

Ini masa yang baik untuk menyemak semula bahawa lencana yang anda pilih ialah versi akhir — penerima akan melihat apa jua imej dan kriteria yang dilampirkan padanya pada saat anda mengeluarkan, bukan apa jua yang anda kemas kini kemudian.
Langkah 3: Muat Naik dan Pratonton
Lepaskan CSV anda ke dalam dan platform menghurainya, menunjukkan anda jadual pratonton, dan menandakan apa-apa yang tidak dapat diprosesnya — e-mel yang hilang, tarikh yang cacat, baris pendua. Tiada apa yang dikeluarkan sehingga anda mengesahkan pratonton.

Langkah pratonton ini lebih penting daripada rupanya. Satu kesilapan taip dalam satu baris CSV 2,000 baris mudah terlepas pandang, dan jauh lebih murah untuk menangkapnya sebelum 1,999 baris betul sudah dikeluarkan berbanding cuba membatalkannya selepas itu. Betulkan baris yang ditandakan dalam hamparan anda, muat naik semula, dan pratonton dikemas kini.
Langkah 4: Jalankan Kelompok
Tekan Keluarkan dan kelompok mula memproses. Bar kemajuan menjejaki baris selesai lawan baki, dan kelompok berjalan di sebelah pelayan — anda tidak perlu memastikan tab terbuka, dan menutup komputer riba anda di tengah kelompok tidak menghilangkan kedudukan anda.
Bahagian terakhir itu wajar dijelaskan kerana ia adalah butiran yang benar-benar penting untuk kohort besar: keadaan kelompok berada pada pelayan, bukan dalam pelayar anda. Jika sambungan anda terputus, komputer riba anda tidur, atau anda cuma menutup tab kerana mesyuarat bermula, kelompok terus berjalan (atau menyambung semula tepat di tempat ia berhenti jika anda menjedanya) dan bukannya bermula semula dari sifar. Untuk kohort bootcamp 40 orang ini satu kelebihan yang bagus. Untuk pelancaran korporat 5,000 baris, ia adalah perbezaan antara “ia berfungsi begitu sahaja” dan “seseorang perlu mengawasi tab pelayar selama dua puluh minit”.
Anda juga boleh menjeda kelompok yang sedang berjalan dengan sengaja — katakan seseorang menandakan bahawa teks kriteria lencana perlu diubah suai di tengah-tengah larian 3,000 baris — betulkan isu itu, dan sambung semula tanpa mengeluarkan semula baris yang telah pun selesai.
Langkah 5: Kendalikan Kegagalan
Senarai penerima sebenar mempunyai baris yang buruk: domain e-mel dengan kesilapan taip, medan nama yang sebenarnya kosong, entri pendua daripada dua helaian dieksport yang digabungkan. Apabila satu baris gagal, kelompok tidak berhenti — ia terus memproses yang selebihnya dan menandakan kegagalan itu untuk semakan kemudian. Anda mendapat eksport keputusan yang menunjukkan dengan tepat baris mana berjaya dan yang mana tidak, jadi anda boleh membetulkan hanya baris yang gagal dan menjalankan kelompok susulan kecil dan bukannya menyemak semula keseluruhan senarai.
Ini penting untuk tabiat eksport CSV yang sudah biasa di papan pemuka credential — anda boleh menarik CSV tentang apa yang sebenarnya dikeluarkan pada bila-bila masa, merujuk silangnya dengan senarai sumber anda, dan tahu dengan tepat siapa yang masih memerlukan lencana.
Laluan API: Aliran Sama, Tanpa Papan Pemuka
Segala di atas menganggap seseorang sedang duduk di papan pemuka mengklik melalui wizard. Jika penyempurnaan anda sudah berada dalam sistem — LMS, CRM, automasi hamparan — anda boleh memacu aliran bulk-credential yang sama terus daripada Awards API.
Panggilan pengeluaran minimum setiap penerima kelihatan seperti ini:
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"
}'
Atau dalam Python, dengan gelung merentasi baris yang dibaca daripada CSV yang sama yang jika tidak anda akan muat naik dengan tangan:
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,
},
)
Ini wajar digunakan apabila pengeluaran credential dicetuskan oleh sesuatu yang lain sama sekali — webhook penyempurnaan kursus, perubahan peringkat CRM, penghantaran borang — dan bukannya seseorang yang mengeksport CSV secara manual. Kami merangkumi pengesahan dan bentuk penuh request/response dalam mula pantas API. Setiap credential yang dicipta dengan cara ini adalah sama seperti yang dicipta melalui wizard papan pemuka: assertion Open Badge v2.0 yang sama, URL pengesahan yang sama, sijil PDF yang sama.
Wizard Papan Pemuka lawan API: Yang Mana Anda Sebenarnya Mahu?
| Dashboard Bulk Credentials | Awards API | |
|---|---|---|
| Terbaik untuk | Kelompok sekali sahaja atau sekali-sekala (graduasi kohort, kehadiran persidangan) | Pencetus berulang (setiap penyempurnaan kursus, setiap pembelian) |
| Usaha persediaan | Tiada — eksport CSV, muat naik ia | Kerja integrasi sekali sahaja (webhook atau skrip) |
| Siapa menjalankannya | Pemilik program, tanpa kod | Sesiapa yang memiliki sistem pencetus |
| Pengendalian kegagalan | Pratonton + eksport keputusan setiap baris | Status HTTP setiap permintaan, dikendalikan dalam logik cuba semula anda sendiri |
Kebanyakan pasukan bermula dengan wizard papan pemuka kerana ia tidak memerlukan apa-apa selain CSV, dan hanya berpindah ke API setelah kelompok yang sama telah dijalankan secara manual tiga atau empat kali dan corak itu jelas berbaloi untuk diautomasikan.
Privasi: Apa Yang Sebenarnya Disimpan
CSV nama dan e-mel ialah data peribadi, dan wajar untuk mengetahui apa yang berlaku padanya selepas muat naik. Alamat e-mel penerima tidak sekali-kali disimpan dalam teks biasa pada credential itu sendiri — ia di-hash dengan salt setiap credential sebagai sebahagian daripada assertion Open Badge v2.0, mengikut format identiti penerima hashed dalam spesifikasi. Hash itulah yang disemak oleh seorang verifier, bukan alamat mentah. Medan nama disimpan seperti yang dimasukkan, kerana ia dimaksudkan untuk kelihatan pada sijil dan halaman pengesahan. Jika satu baris perlu dibetulkan selepas pengeluaran — nama yang tersalah eja, paling lazim — anda boleh mengedit atau membatalkan credential individu itu daripada papan pemuka credential tanpa menyentuh baki kelompok.
Selepas Kelompok: Beritahu Penerima
Mengeluarkan lencana dan memberitahu penerima mengenainya ialah dua langkah berbeza. Jika CSV anda belum lagi mencetuskan e-mel melalui sistem anda sendiri, aliran perkongsian pukal papan pemuka membolehkan anda memilih pelbagai credential yang baru sahaja anda cipta dan menghantar e-mel perkongsian diperibadikan kepada kesemuanya dalam satu pusingan — lihat menghantar e-mel perkongsian secara pukal untuk panduan penuh, termasuk bagaimana pemperibadian setiap penerima (nama, imej lencana, pautan pengesahan) digantikan secara automatik.
Bila Bulk Credentials Ialah Alat Yang Betul
Pengeluaran pukal ialah pilihan yang betul apabila kerangka “kelompok” sepadan dengan dunia sebenar: kohort yang tamat pada hari yang sama, persidangan yang baru sahaja berakhir, pelancaran latihan yang menghampiri tarikh akhir pematuhan. Jika sebaliknya anda mengeluarkan credential sekali sahaja apabila pencapaian individu dicapai — satu kenaikan pangkat, satu penyempurnaan projek — borang credential tunggal lebih pantas daripada menghimpunkan CSV satu baris.
Untuk apa jua yang berulang — kursus yang sama berjalan setiap bulan, saluran onboarding berterusan — laluan API di atas berbaloi untuk disediakan sekali sahaja. Ia menukar “jalankan bulk credentials secara manual bagi setiap kohort” kepada “penyempurnaan sudah mengeluarkan credential secara automatik”, iaitu versi aliran kerja ini yang kebanyakan pemilik program sebenarnya mahukan selepas kelompok manual kedua atau ketiga.
Bersedia untuk mengeluarkan credential boleh disahkan pertama anda? Mula percuma di badges.ninja — pereka visual, halaman pengesahan awam, sijil PDF, output Open Badge v2.0. Tiada kad kredit diperlukan.
Bagaimana artikel ini dihasilkan
Sebahagian catatan di blog ini dirangka dengan bantuan pembantu AI, kemudian disemak, disahkan fakta, dan disunting oleh pasukan Badges Ninja sebelum diterbitkan. Setiap sampel kod dan harga disahkan berdasarkan produk sebenar. Ketahui lebih lanjut tentang proses editorial dan AI kami di halaman proses editorial .

Tentang penulis
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.


