Beta 测试
运行私有 Beta 测试计划并管理其测试者名单。需要为该项目启用 Beta 功能。
计划
GET/v1/beta/programs
| Parameter | Type | Description |
|---|---|---|
status | string | 按状态筛选:draft、active 或 closed。 |
limit | integer | 每页数量。默认 25。 |
offset | integer | 跳过的条数。默认 0。 |
GET/v1/beta/programs/:id
POST/v1/beta/programs
| Parameter | Type | Description |
|---|---|---|
namerequired | string | 计划名称。URL 别名由其生成,并在项目内保持唯一。 |
version | string | 受测的 semver 版本(X.Y.Z)。 |
summary | string | Beta 的简短描述。 |
access_url | string | 测试者获取构建的位置(如 TestFlight 链接)。 |
access_instructions | string | 测试者如何完成设置。 |
status | string | draft、active 或 closed。默认 draft。 |
allow_public_signup | boolean | 允许通过门户链接公开加入。默认 false。 |
feedback_deadline | string | 在此之后关闭反馈的 ISO-8601 时间戳。 |
PATCH/v1/beta/programs/:id
| Parameter | Type | Description |
|---|---|---|
name | string | 计划名称。 |
version | string | 受测的 semver 版本(X.Y.Z)。 |
summary | string | Beta 的简短描述。 |
access_url | string | 测试者获取构建的位置。 |
access_instructions | string | 测试者如何完成设置。 |
status | string | draft、active 或 closed。 |
allow_public_signup | boolean | 允许通过门户链接公开加入。 |
feedback_deadline | string | 在此之后关闭反馈的 ISO-8601 时间戳。 |
DELETE/v1/beta/programs/:id
测试者
GET/v1/beta/programs/:programId/testers
| Parameter | Type | Description |
|---|---|---|
status | string | 按状态筛选:invited、joined、declined 或 revoked。 |
limit | integer | 每页数量。默认 25。 |
offset | integer | 跳过的条数。默认 0。 |
GET/v1/beta/programs/:programId/testers/:id
POST/v1/beta/programs/:programId/testers
| Parameter | Type | Description |
|---|---|---|
emailrequired | string | 要添加的测试者邮箱。 |
DELETE/v1/beta/programs/:programId/testers/:id
写操作需要付费套餐的 API 访问权限 Pro。别名由计划的 name 生成,并在项目内保持唯一。添加测试者对邮箱是幂等的,并返回接受用的 token —— API 不发送邮件,请用它构建门户加入链接(/beta/join?token=...)并自行发送。DELETE 返回 204;删除计划会级联删除其测试者及反馈,删除测试者不可恢复。
列出计划
curl "https://api.supdesk.app/v1/beta/programs?status=active&limit=10" \
-H "Authorization: Bearer sd_live_..."{
"data": [
{
"id": "bp_abc123",
"project_id": "prj_9f2a",
"name": "Mobile App v2",
"version": "2.0.0",
"slug": "mobile-app-v2",
"summary": "Early access to the new mobile experience.",
"access_url": "https://testflight.apple.com/join/abcd",
"access_instructions": "Install TestFlight, then open the invite link.",
"status": "active",
"allow_public_signup": true,
"feedback_deadline": "2026-08-01T00:00:00Z",
"created_at": "2026-07-01T09:12:00Z"
}
],
"pagination": { "limit": 25, "offset": 0, "has_more": false }
}创建计划
curl -X POST https://api.supdesk.app/v1/beta/programs \
-H "Authorization: Bearer sd_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Mobile App v2",
"version": "2.0.0",
"summary": "Early access to the new mobile experience.",
"status": "active",
"allow_public_signup": true
}'{
"data": {
"id": "bp_abc123",
"project_id": "prj_9f2a",
"name": "Mobile App v2",
"version": "2.0.0",
"slug": "mobile-app-v2",
"summary": "Early access to the new mobile experience.",
"access_url": null,
"access_instructions": null,
"status": "active",
"allow_public_signup": true,
"feedback_deadline": null,
"created_at": "2026-07-01T09:12:00Z"
}
}更新计划
只会修改你发送的字段;省略的字段保持不变。
curl -X PATCH https://api.supdesk.app/v1/beta/programs/bp_abc123 \
-H "Authorization: Bearer sd_live_..." \
-H "Content-Type: application/json" \
-d '{ "status": "closed" }'{
"data": {
"id": "bp_abc123",
"project_id": "prj_9f2a",
"name": "Mobile App v2",
"version": "2.0.0",
"slug": "mobile-app-v2",
"summary": "Early access to the new mobile experience.",
"access_url": null,
"access_instructions": null,
"status": "closed",
"allow_public_signup": true,
"feedback_deadline": null,
"created_at": "2026-07-01T09:12:00Z"
}
}删除计划
curl -X DELETE https://api.supdesk.app/v1/beta/programs/bp_abc123 \
-H "Authorization: Bearer sd_live_..."返回 204 No Content。级联删除该计划的测试者及其反馈。
列出测试者
curl "https://api.supdesk.app/v1/beta/programs/bp_abc123/testers?status=invited" \
-H "Authorization: Bearer sd_live_..."{
"data": [
{
"id": "bt_def456",
"beta_program_id": "bp_abc123",
"email": "jamie@example.com",
"token": "9d8c7b...",
"source": "invite",
"status": "invited",
"end_user_id": null,
"invited_at": "2026-07-02T10:00:00Z",
"joined_at": null
}
],
"pagination": { "limit": 25, "offset": 0, "has_more": false }
}添加测试者
对邮箱是幂等的:添加已在计划中的地址会返回其现有记录,状态码为 200 而非 201。
curl -X POST https://api.supdesk.app/v1/beta/programs/bp_abc123/testers \
-H "Authorization: Bearer sd_live_..." \
-H "Content-Type: application/json" \
-d '{ "email": "jamie@example.com" }'{
"data": {
"id": "bt_def456",
"beta_program_id": "bp_abc123",
"email": "jamie@example.com",
"token": "9d8c7b...",
"source": "invite",
"status": "invited",
"end_user_id": null,
"invited_at": "2026-07-02T10:00:00Z",
"joined_at": null
}
}使用返回的 token 构建门户加入链接(/beta/join?token=...)并自行发送。
移除测试者
curl -X DELETE https://api.supdesk.app/v1/beta/programs/bp_abc123/testers/bt_def456 \
-H "Authorization: Bearer sd_live_..."返回 204 No Content。移除测试者不可恢复,并会删除其 Beta 反馈。
Last updated on