Skip to content

公开验证

这些端点是公开的,无需认证。任何人都可借助它们验证徽章凭证并获取 Open Badge v2.0 JSON 数据。

所有端点都相对于 https://api.badges.ninja

获取颁发者

获取指定颁发者的 Open Badge v2.0 颁发者档案 JSON。

GET /certify-badge/issuer/{guid}

示例

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

响应

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

获取徽章

获取指定徽章的 Open Badge v2.0 BadgeClass JSON。

GET /certify-badge/badge/{guid}

示例

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

响应

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

获取颁发

获取指定颁发的 Open Badge v2.0 Assertion JSON。

GET /certify-badge/award/{guid}

示例

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

响应

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

说明

  • 按 Open Badge 规范出于隐私保护,接收者邮箱以 SHA-256 进行哈希。
  • 响应会缓存 1 小时(Cache-Control: public, max-age=3600)。

获取颁发的分享文案

获取某次颁发对应徽章的自定义分享文案。

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

示例

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

响应

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

若未设置自定义分享文案,会返回默认消息。


发送颁发邮件(公开)

从公开端点发送颁发通知邮件。公开分享页会使用它。

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

参数

参数类型必填说明
recipientsstring以逗号分隔的邮箱列表
subjectstring邮件主题
messagestring要加入邮件的自定义消息

示例

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

响应

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

验证颁发者

通过点击发送到颁发者邮箱的验证链接来验证颁发者。通常是通过验证邮件中的链接访问,而非直接调用。

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

参数

参数类型说明
guidstring颁发者 GUID
codestring验证码

响应

返回一个 HTML 页面,显示验证是成功还是失败。该端点是为在浏览器中打开而设计的。

badges.ninja Documentation