Passer au contenu

Devices

Les appareils représentent des installations individuelles de votre application gérées par Capgo. Les appareils API vous permettent de suivre et de gérer les appareils, y compris leurs offres groupées (versions), leurs canaux et leur état de mise à jour.

Chaque appareil possède des caractéristiques et des états uniques :

  • Plateforme : iOS, Android ou Electron
  • Bundle (version) : bundle actuel (version) et version de build native
  • Environnement : Production ou développement, émulateur ou périphérique physique
  • Channel: Current update channel assignment
  • ID personnalisé : identifiant facultatif pour vos propres fins de suivi

## meilleures pratiques

  1. Suivi des bundles (versions) : surveillez l’adoption des bundles (versions) d’appareils pour garantir l’adoption des mises à jour
  2. Gestion des canaux : attribuez des appareils aux canaux appropriés en fonction des besoins de test
  3. Conscience de l’environnement : Gérer différents environnements (prod/dev/emulator) de manière appropriée
  4. Identification personnalisée : utilisez des identifiants personnalisés pour intégrer vos systèmes existants

https://api.capgo.app/device/

Associez un appareil à un ensemble (version) ou à un canal spécifique.

interface DeviceLink {
app_id: string
device_id: string
version_id?: string // bundle (version) name
channel?: string // channel name
}
Terminal window
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/

Retrieve device information. Utilise la pagination basée sur le curseur pour une récupération efficace de grandes listes de périphériques.

  • app_id: Required. L’ID de votre application
  • device_id : Facultatif. Specific device ID to retrieve a single device
  • cursor: Optional. Cursor from previous response for pagination
  • limit: Optional. Nombre d’appareils par page (par défaut : 50)
Terminal window
# Get all devices (first page)
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=app_123"
# Get specific device
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=app_123&device_id=device_456"
# Get next page using cursor
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=app_123&cursor=2024-01-01T00:00:00Z|device_456"

Lors de la demande de plusieurs appareils (pas de paramètre 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")
}

Lors de la demande d’un appareil spécifique avec le paramètre device_id, renvoie directement l’objet appareil :

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")
}
{
"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
}
{
"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/

Unlink a device from its channel override. Cela réinitialise l’appareil pour qu’il utilise son canal par défaut.

interface Device {
device_id: string
app_id: string
}
Terminal window
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"
}

Scénarios d’erreur courants et leurs réponses :

// 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"
}
  1. Beta Device Registration
{
"app_id": "app_123",
"device_id": "device_456",
"channel": "beta"
}
  1. Remplacement de version
{
"app_id": "app_123",
"device_id": "device_456",
"version_id": "1.1.0"
}
```3. **Réinitialiser la chaîne par défaut**
```typescript
// Use DELETE endpoint to remove overrides
  1. Surveillance : vérifiez régulièrement l’état de l’appareil et la distribution du bundle (version)
  2. Tests : utilisez des identifiants personnalisés pour identifier facilement les appareils de test
  3. Dépannage : suivez les mises à jour des appareils et les attributions de canaux
  4. Contrôle de version natif : surveillez les versions d’applications natives pour garantir la compatibilité