Devices
设备代表由 Capgo 管理的应用程序的各个安装。设备 API 允许您跟踪和管理设备,包括其捆绑包(版本)、通道和更新状态。
:::注意[数据保留] 设备数据自上次设备活动起保留 90 天。在此期间未连接到 Capgo 的设备将自动从系统中删除。活动设备在检查更新时会被持续跟踪。 :::
每个设备都有独特的特性和状态:
- 平台:iOS、Android 或 Electron
- 捆绑包(版本):当前捆绑包(版本)和本机构建版本
- 环境:生产或开发、模拟器或物理设备
- 频道:当前更新频道分配
- 自定义 ID:用于您自己的跟踪目的的可选标识符
- 捆绑包(版本)跟踪:监控设备捆绑包(版本)的采用情况以确保更新的采用
- 通道管理:根据测试需求将设备分配到合适的通道
- 环境意识:适当处理不同的环境(prod/dev/emulator)
- 自定义标识:使用自定义 ID 与您现有的系统集成
https://api.capgo.app/device/
将设备链接到特定捆绑包(版本)或通道。
interface DeviceLink { app_id: string device_id: string version_id?: string // bundle (version) name channel?: string // channel name}curl -X POST \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "app_123", "device_id": "device_456", "channel": "beta" }' \ https://api.capgo.app/device/{ "status": "ok"}https://api.capgo.app/device/
检索设备信息。使用基于光标的分页来高效检索大型设备列表。
app_id:必需。您的应用程序的 IDdevice_id:可选。用于检索单个设备的特定设备 IDcursor:可选。来自先前分页响应的光标limit:可选。每页设备数量(默认:50)
# Get all devices (first page)curl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=app_123"
# Get specific devicecurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=app_123&device_id=device_456"
# Get next page using cursorcurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=app_123&cursor=2024-01-01T00:00:00Z|device_456"响应类型(列表)
Section titled “响应类型(列表)”请求多个设备时(无 device_id 参数):
interface DeviceListResponse { data: Device[]; nextCursor?: string; // Pass this as 'cursor' param to get next page hasMore: boolean; // true if more pages available}
interface Device { updated_at: string; device_id: string; custom_id: string; version?: number; // bundle (version) id version_name: string | null; // bundle (version) name channel?: string; app_id: string; platform: "ios" | "android" | "electron"; plugin_version: string; os_version: string; version_build: string; is_prod: boolean; is_emulator: boolean; key_id: string | null; // First 4 chars of encryption key (e.g., "MIIB")}响应类型(单个设备)
Section titled “响应类型(单个设备)”当使用 device_id 参数请求特定设备时,直接返回设备对象:
interface Device { updated_at: string; device_id: string; custom_id: string; version?: number; // bundle (version) id version_name: string | null; // bundle (version) name channel?: string; app_id: string; platform: "ios" | "android" | "electron"; plugin_version: string; os_version: string; version_build: string; is_prod: boolean; is_emulator: boolean; key_id: string | null; // First 4 chars of encryption key (e.g., "MIIB")}响应示例(列表)
Section titled “响应示例(列表)”{ "data": [ { "device_id": "device_456", "custom_id": "test-device-1", "version": 1, "version_name": "1.0.0", "app_id": "app_123", "platform": "ios", "plugin_version": "5.0.0", "os_version": "17.0", "version_build": "1", "is_prod": true, "is_emulator": false, "updated_at": "2024-01-01T00:00:00Z" } ], "nextCursor": "2024-01-01T00:00:00Z|device_456", "hasMore": true}响应示例(单个设备)
Section titled “响应示例(单个设备)”{ "device_id": "device_456", "custom_id": "test-device-1", "version": 1, "version_name": "1.0.0", "app_id": "app_123", "platform": "ios", "plugin_version": "5.0.0", "os_version": "17.0", "version_build": "1", "is_prod": true, "is_emulator": false, "updated_at": "2024-01-01T00:00:00Z", "channel": "production"}https://api.capgo.app/device/
取消设备与其通道覆盖的链接。这会将设备重置为使用其默认通道。
interface Device { device_id: string app_id: string}curl -X DELETE \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "app_123", "device_id": "device_456" }' \ https://api.capgo.app/device/{ "status": "ok"}常见错误场景及其应对措施:
// Device not found{ "error": "Device not found", "status": "KO"}
// Invalid bundle (version){ "error": "Version not found", "status": "KO"}
// Invalid channel{ "error": "Channel not found", "status": "KO"}
// Permission denied{ "error": "Insufficient permissions to manage devices", "status": "KO"}- 测试版设备注册
{ "app_id": "app_123", "device_id": "device_456", "channel": "beta"}- 版本覆盖
{ "app_id": "app_123", "device_id": "device_456", "version_id": "1.1.0"}- 重置为默认频道
// Use DELETE endpoint to remove overrides```## 设备管理技巧
1. **监控**:定期检查设备状态和bundle(版本)分布2. **测试**:使用自定义ID轻松识别测试设备3. **故障排除**:跟踪设备更新和通道分配4. **本机版本控制**:监控本机应用程序版本以确保兼容性