Thay thế Open Badges gốc của Moodle bằng Badges Ninja (Trình thiết kế tốt hơn, cùng một API)
Moodle có sẵn Open Badges gốc nhưng trình thiết kế lại hạn chế và trải nghiệm của người nhận bị khóa chặt bên trong Moodle. Hãy cấp huy hiệu kỹ thuật số Badges Ninja dựa trên các lượt hoàn thành khóa học trong Moodle thay vì vậy.
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 đã cấp Open Badges gốc kể từ phiên bản 2.5, và với rất nhiều quản trị viên khóa học, đó là lý do đủ để không bao giờ tìm kiếm giải pháp khác. Nó có sẵn, miễn phí, và về mặt kỹ thuật tạo ra một credential tuân thủ chuẩn. Vậy tại sao có quá nhiều quản trị viên Moodle lại cảm thấy bực bội khi đã cấp đến chiếc huy hiệu thứ năm mươi?
Câu trả lời thẳng thắn là: hệ thống huy hiệu của Moodle được thiết kế để đánh dấu tick vào ô tuân thủ, chứ không phải để trở thành một sản phẩm cấp credential. Nó vẫn hoạt động, nhưng hoạt động theo kiểu một tính năng được gắn thêm vào một LMS — có chức năng, đã lỗi thời, và bị bó buộc bởi giới hạn của nền tảng mà nó đang sống bên trong. Nếu bạn từng cố làm cho một huy hiệu Moodle trông khác hơn một biểu tượng clip-art hình tròn, hoặc nghe một học viên tốt nghiệp hỏi “khoan đã, vậy tôi xem cái này ở đâu nhỉ?”, thì bạn đã hiểu rõ khoảng cách đó rồi.
Đây không phải là một bài chê bai Moodle — đó là một LMS xuất sắc, và bộ máy tiêu chí huy hiệu của nó (hoàn thành khóa học, hoàn thành hoạt động, trao thủ công, thành viên nhóm cohort) thực sự được nghĩ rất thấu đáo cho việc kích hoạt một credential. Vấn đề nằm ở mọi thứ xảy ra sau khi kích hoạt: công cụ thiết kế, trải nghiệm người nhận, và khả năng hiển thị của huy hiệu bên ngoài instance Moodle của bạn. Đó chính xác là phần mà badges.ninja được xây dựng để giải quyết, và bạn không cần từ bỏ logic hoàn thành khóa học của Moodle để sử dụng nó — bạn chỉ cần trỏ trình kích hoạt sang một cỗ máy cấp phát khác.
Những điểm huy hiệu gốc của Moodle còn thiếu sót
Trình thiết kế chỉ là một công cụ ghép ảnh dựa trên tọa độ, không phải một công cụ thiết kế. Trình chỉnh sửa huy hiệu của Moodle cho phép bạn chọn một ảnh nền, thêm vài lớp icon đã được cài sẵn, và điều chỉnh vị trí bằng độ lệch pixel. Không có thư viện hình dạng, không có hệ thống bảng màu, không có lựa chọn phông chữ nào ngoài những gì đã tích hợp sẵn trong bộ icon. Nếu tổ chức của bạn có một thương hiệu — một logo, một bảng màu, một ngôn ngữ hình ảnh riêng cho các chứng nhận của bạn — trình chỉnh sửa của Moodle không thể thể hiện được điều đó. Hầu hết các tổ chức cuối cùng phải thiết kế hình ảnh huy hiệu trong Photoshop hoặc Canva rồi tải lên một file PNG phẳng, điều này khiến việc có sẵn một trình thiết kế trong ứng dụng trở nên vô nghĩa.
Người nhận cần đăng nhập Moodle để xem huy hiệu của chính mình. Các huy hiệu được trao cho một học viên nằm trong trang hồ sơ Moodle của họ. Nếu họ đã rời khỏi khóa học, quên thông tin đăng nhập của tổ chức, hoặc tổ chức đã hủy cấp tài khoản của họ, huy hiệu đó gần như biến mất khỏi phía họ — dù cho assertion gốc bên dưới vẫn có thể được truy xuất qua bộ kết nối backpack của Moodle hoặc trang huy hiệu công khai. Không hề có một nơi riêng biệt, mang thương hiệu, luôn có thể truy cập, nơi người nhận chỉ cần đăng nhập bằng email của mình và xem mọi credential họ từng kiếm được ở tất cả các khóa học.
Tính năng chia sẻ chỉ là một ý tưởng thêm vào sau cùng. Moodle có thể đẩy huy hiệu sang một dịch vụ tương thích Mozilla Backpack, và nó cung cấp một URL xác minh công khai cho mỗi huy hiệu, nhưng không có luồng “Thêm vào LinkedIn” tích hợp sẵn, không có nút chia sẻ một chạm, và không có phân tích mức độ tương tác để biết liệu có ai từng xem huy hiệu sau khi được cấp hay không. Với các chương trình muốn huy hiệu hoạt động như một kênh marketing truyền miệng — bootcamp, đơn vị đào tạo liên tục (CE), đào tạo doanh nghiệp — đó là một chi phí cơ hội thực sự.
Các thao tác hàng loạt khá vụng về. Việc trao huy hiệu cho cả một nhóm cohort chỉ hoạt động tốt nếu mọi người hoàn thành hoạt động kích hoạt trong Moodle cùng một lúc. Nhưng nếu bạn cần cấp bù huy hiệu cho một cohort trong quá khứ, nhập các lượt hoàn thành lịch sử từ một bảng tính, hoặc cấp huy hiệu cho điều gì đó xảy ra hoàn toàn bên ngoài LMS, bạn sẽ phải viết SQL trực tiếp vào cơ sở dữ liệu Moodle hoặc vật lộn với các công cụ nhập CSV vốn không được xây dựng riêng cho huy hiệu.
Mô hình thay thế: giữ nguyên trình kích hoạt của Moodle, đổi tổ chức cấp
Bạn không cần phải rời bỏ Moodle để khắc phục điều này. Mô hình gọn gàng nhất là để Moodle tiếp tục làm những gì nó làm tốt — theo dõi hoàn thành khóa học, hoàn thành hoạt động, thành viên cohort — và cho nó gọi API của Badges Ninja ngay khi một điều kiện hoàn thành được kích hoạt, thay vì (hoặc cùng lúc với) việc trao huy hiệu gốc của nó.
Moodle hỗ trợ điều này theo vài cách:
-
Webhook hoàn thành khóa học / polling Moodle Web Services (REST). API core_completion của Moodle cung cấp trạng thái hoàn thành theo từng người dùng, từng khóa học. Một tác vụ lên lịch nhẹ nhàng (một tác vụ cron được lên lịch trong Moodle, hoặc một cron job bên ngoài gọi vào REST API của Moodle) có thể poll để tìm các lượt đăng ký vừa hoàn thành và, với mỗi lượt, gọi đến endpoint awards của Badges Ninja.
-
Một hook plugin cục bộ. Nếu bạn có một lập trình viên trong đội ngũ, hệ thống sự kiện của Moodle (
\core\event\course_completed) có thể được một plugin cục bộ nhỏ theo dõi, plugin này sẽ gửi một yêu cầu HTTP ngay khi việc hoàn thành xảy ra — không có độ trễ do polling. -
Zapier/Make/n8n làm lớp kết nối trung gian, nếu bạn muốn tránh động vào codebase của Moodle — Moodle có thể đẩy các sự kiện hoàn thành đến một bộ nhận webhook, sau đó một công cụ tự động hóa no-code sẽ biến nó thành một lệnh gọi cấp huy hiệu.
Đây là lệnh gọi cấp huy hiệu thực tế, một khi bạn đã có tên và email của một người dùng đã hoàn thành:
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"
}'
Hoặc trong Node, bên trong bất kỳ tác vụ lên lịch hay bộ nhận webhook nào bạn đang chạy:
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();
Email của người nhận được băm bằng SHA-256 khi lưu trữ, lượt cấp huy hiệu tự động có được một URL xác minh riêng, một mã QR, và một chứng chỉ PDF khổ A4 — và quan trọng nhất, người nhận có thể xác nhận nó qua đăng nhập bằng magic-link tại badges.ninja/me, không cần một tài khoản Moodle riêng biệt. Xem đầy đủ cấu trúc request/response trong tài liệu tham khảo API awards và hướng dẫn xác thực để hiểu cách API key hoạt động từ đầu đến cuối.
Nếu bạn muốn xử lý theo lô — chẳng hạn cấp bù các lượt hoàn thành của cả một học kỳ trong một lần thay vì kết nối các sự kiện thời gian thực — hãy xuất các lượt hoàn thành từ Moodle dưới dạng CSV và sử dụng trực tiếp luồng cấp huy hiệu hàng loạt, luồng này hỗ trợ tạm dừng/tiếp tục cho các file lớn. Nội dung này được trình bày chi tiết trong bài cách cấp Open Badges từ file CSV.
Thiết kế bản thân huy hiệu
Khi phần hạ tầng kỹ thuật đã sẵn sàng, việc thiết kế huy hiệu thực tế chỉ mất vài phút, không cần gửi yêu cầu đến đội ngũ web của bạn. Trình thiết kế trực quan cung cấp cho bạn hơn 80 mẫu hình dạng, một hệ thống bảng màu thực thụ, thư viện icon, và khả năng tải lên phông chữ tùy chỉnh — vì vậy một huy hiệu cho “Thống kê nâng cao — Đã hoàn thành” thực sự có thể trông như thuộc về thương hiệu của tổ chức bạn thay vì một icon thành tích chung chung kiểu Moodle.

Mỗi API key đều được giới hạn phạm vi và có thể thu hồi ngay từ bảng điều khiển nơi bạn quản lý huy hiệu và tổ chức cấp, vì vậy việc trao thông tin xác thực tích hợp cho một lập trình viên (hoặc một công cụ tự động hóa như Zapier) không đồng nghĩa với việc chia sẻ thông tin đăng nhập tài khoản chính của bạn.

So sánh song song: trải nghiệm người nhận
| Huy hiệu gốc của Moodle | Badges Ninja | |
|---|---|---|
| Nơi người nhận xem huy hiệu | Trong hồ sơ Moodle, cần đăng nhập | badges.ninja/me, magic-link, không cần mật khẩu |
| Xác minh công khai | Có, URL công khai cho từng huy hiệu | Có, endpoint Open Badge v2.0 JSON-LD |
| Công cụ thiết kế | Icon cố định + độ lệch vị trí | 80+ mẫu, bảng màu, phông chữ/icon tùy chỉnh |
| Chia sẻ lên LinkedIn | Thủ công, không có nút tích hợp sẵn | Luồng Add-to-LinkedIn-Profile gốc |
| Cấp hàng loạt cho dữ liệu lịch sử | Giải pháp tạm bằng SQL hoặc CSV thủ công | Cấp hàng loạt tích hợp sẵn với tạm dừng/tiếp tục |
| Khả năng theo dõi tương tác | Không có | Thống kê xem/chia sẻ theo từng lượt cấp |
| Truy cập sau khi rời tổ chức | Phụ thuộc vào trạng thái tài khoản Moodle | Bền vững, thuộc quyền sở hữu người nhận |
Moodle vẫn thắng ở một điểm: nếu yêu cầu duy nhất của bạn là “huy hiệu tồn tại, về mặt kỹ thuật tuân thủ Open Badge v2.0, và nằm trong chính LMS mà học viên đã đang sử dụng,” thì huy hiệu gốc không tốn thêm chi phí nào và không đòi hỏi công sức tích hợp. Sự đánh đổi xuất hiện ngay khi bạn bắt đầu quan tâm đến chất lượng thiết kế, khả năng mang theo sau khi khóa học kết thúc, hoặc biến việc cấp huy hiệu thành một tín hiệu tuyển dụng/marketing — mà điều này rồi cũng sẽ đúng với hầu hết các tổ chức.
Để có cái nhìn tổng quan hơn về cách các nền tảng Open Badges khác so sánh về giá cả và tính năng, hãy xem bảng so sánh nền tảng Open Badges rẻ nhất. Và nếu tổ chức của bạn đang cân nhắc giữa Open Badge v2.0 và chuẩn verifiable-credentials mới hơn, giải thích Open Badge v2 so với v3 sẽ cho bạn biết nên triển khai chuẩn nào ngay hôm nay.
Sẵn sàng cấp credential có thể xác minh đầu tiên của bạn chưa? Bắt đầu miễn phí tại badges.ninja — trình thiết kế trực quan, trang xác minh công khai, chứng chỉ PDF, đầu ra chuẩn Open Badge v2.0. Không cần thẻ tín dụng.
Bài viết này được thực hiện như thế nào
Một số bài viết trên blog này được soạn với sự hỗ trợ của trợ lý AI, sau đó được đội ngũ Badges Ninja xem xét, kiểm chứng và biên tập trước khi xuất bản. Mọi đoạn code và mức giá đều được đối chiếu với sản phẩm thực tế. Tìm hiểu thêm về quy trình biên tập và AI của chúng tôi tại trang quy trình biên tập .

Về tác giả
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.
Thêm bài viết của Nacho Coll
- Tự động hóa Open Badges với Zapier, Make và n8n (Công thức không cần code)27 thg 8, 2026 · 13phút đọc
- Cách thêm nút LinkedIn “Add to Profile” cho Open Badges của bạn20 thg 8, 2026 · 14phút đọc
- Open Badges so với Chứng chỉ PDF: Đâu Là Lựa Chọn Phù Hợp Cho Chương Trình Của Bạn Năm 2026?10 thg 8, 2026 · 9phút đọc

