Skip to content

Xác thực công khai

Các điểm cuối này công khai và không cần xác thực. Chúng cho phép bất kỳ ai xác thực chứng chỉ huy hiệu và lấy dữ liệu JSON Open Badge v2.0.

Mọi điểm cuối đều tương đối với https://api.badges.ninja.

Lấy đơn vị cấp

Lấy JSON hồ sơ Open Badge v2.0 Issuer Profile cho một đơn vị cấp cụ thể.

GET /certify-badge/issuer/{guid}

Ví dụ

bash
curl https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890

Phản hồi

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "Issuer",
  "id": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-...",
  "name": "Acme Academy",
  "url": "https://acme.example.com",
  "email": "badges@acme.example.com",
  "verification": {
    "type": "hosted",
    "allowedOrigins": "api.badges.ninja"
  }
}

Lấy huy hiệu

Lấy JSON Open Badge v2.0 BadgeClass cho một huy hiệu cụ thể.

GET /certify-badge/badge/{guid}

Ví dụ

bash
curl https://api.badges.ninja/certify-badge/badge/b1c2d3e4-f5a6-7890-bcde-f12345678901

Phản hồi

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "BadgeClass",
  "id": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
  "name": "JavaScript Fundamentals",
  "description": "Demonstrates proficiency in core JavaScript concepts",
  "criteria": {
    "narrative": "Completed the JavaScript Fundamentals course with a score of 80% or higher"
  },
  "image": "https://ipfs.ninja/ipfs/Qm...",
  "issuer": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-..."
}

Lấy lần cấp

Lấy JSON Open Badge v2.0 Assertion cho một lần cấp cụ thể.

GET /certify-badge/award/{guid}

Ví dụ

bash
curl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012

Phản hồi

json
{
  "@context": "https://w3id.org/openbadges/v2",
  "type": "Assertion",
  "id": "https://api.badges.ninja/certify-badge/award/c1d2e3f4-...",
  "recipient": {
    "type": "email",
    "hashed": true,
    "identity": "sha256$..."
  },
  "badge": "https://api.badges.ninja/certify-badge/badge/b1c2d3e4-...",
  "issuedOn": "2025-01-15T00:00:00.000Z",
  "verification": {
    "type": "hosted"
  }
}

Ghi chú

  • Email người nhận được băm (SHA-256) cho mục đích bảo mật, theo đặc tả Open Badge.
  • Phản hồi được lưu cache trong 1 giờ (Cache-Control: public, max-age=3600).

Lấy văn bản chia sẻ lần cấp

Lấy văn bản chia sẻ tùy chỉnh cho huy hiệu của một lần cấp.

GET /certify-badge/award/{guid}/share-text

Ví dụ

bash
curl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/share-text

Phản hồi

json
{
  "text": "I just earned the JavaScript Fundamentals badge! Check it out:"
}

Nếu không đặt văn bản chia sẻ tùy chỉnh, một thông điệp mặc định được trả về.


Gửi email lần cấp (công khai)

Gửi email thông báo lần cấp từ điểm cuối công khai. Được trang chia sẻ công khai dùng.

POST /certify-badge/award/{guid}/send-email

Tham số

Tham sốKiểuBắt buộcMô tả
recipientsstringDanh sách email phân cách bằng dấu phẩy
subjectstringKhôngTiêu đề email
messagestringKhôngThông điệp tùy chỉnh đưa vào email

Ví dụ

bash
curl -X POST https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/send-email \
  -H "Content-Type: application/json" \
  -d '{
    "parameters": {
      "recipients": "colleague@example.com",
      "message": "Check out this badge!"
    }
  }'

Phản hồi

json
{
  "statusCode": 200,
  "info": "award sent"
}

Xác minh đơn vị cấp

Xác minh đơn vị cấp bằng cách nhấp vào liên kết xác minh được gửi đến email đơn vị cấp. Thường được truy cập qua liên kết trong email xác minh, không gọi trực tiếp.

GET /certify-badge/verify-issuer/{guid}/{code}

Tham số

Tham sốKiểuMô tả
guidstringGUID của đơn vị cấp
codestringMã xác minh

Phản hồi

Trả về một trang HTML xác nhận việc xác minh thành công hay thất bại. Điểm cuối này được thiết kế để mở trong trình duyệt.

badges.ninja Documentation