简体中文
简体中文
Appearance
简体中文
简体中文
Appearance
这些端点是公开的,无需身份验证。任何人都可以用它们验证徽章凭证,并获取 Open Badge v2.0 的 JSON 数据。
所有端点均相对于 https://api.badges.ninja。
获取指定颁发者的 Open Badge v2.0 颁发者资料(Issuer Profile)JSON。
GET /certify-badge/issuer/{guid}curl https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-e5f6-7890-abcd-ef1234567890{
"@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}curl https://api.badges.ninja/certify-badge/badge/b1c2d3e4-f5a6-7890-bcde-f12345678901{
"@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://badges.ninja/images/{sha256}.png",
"issuer": "https://api.badges.ninja/certify-badge/issuer/a1b2c3d4-..."
}获取指定凭证的 Open Badge v2.0 Assertion JSON。
GET /certify-badge/award/{guid}curl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012{
"@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"
},
"revoked": false
}如果凭证已被撤销,assertion 会带有 "revoked": true;若提供了撤销原因,还会带有 "revocationReason" 字符串:
{
"revoked": true,
"revocationReason": "Issued in error"
}这是 Open Badges 2.0 对撤销的表示方式。同一次撤销也会体现在该凭证的 Open Badges 3.0 Verifiable Credential 中——参见 撤销(Bitstring Status List)。
Cache-Control: public, max-age=300)。已撤销的凭证使用更短的 30 秒缓存(max-age=30),以便撤销状态能够快速传播。获取凭证所属徽章的自定义分享文本。
GET /certify-badge/award/{guid}/share-textcurl https://api.badges.ninja/certify-badge/award/c1d2e3f4-a5b6-7890-cdef-123456789012/share-text{
"text": "I just earned the JavaScript Fundamentals badge! Check it out:"
}如果未设置自定义分享文本,则返回默认消息。
通过公开端点发送凭证通知邮件。公开分享页面会使用此端点。
POST /certify-badge/award/{guid}/send-email| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
recipients | string | 是 | 以逗号分隔的电子邮件地址列表 |
message | string | 否 | 要包含在邮件中的自定义消息 |
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!"
}
}'{
"statusCode": 200,
"info": "award sent"
}这是唯一一个把结果包裹在
{ "statusCode", "info" }信封中的端点。其他所有端点都直接返回其数据。
点击发送到颁发者邮箱的验证链接来验证颁发者。通常是通过验证邮件中的链接访问,而不是直接调用。
GET /certify-badge/verify-issuer/{guid}/{code}| 参数 | 类型 | 说明 |
|---|---|---|
guid | string | 颁发者 GUID |
code | string | 验证码 |
返回一个 HTML 页面,用于确认验证成功或失败。此端点设计为在浏览器中打开。