__CAPGO_KEEP_0__ - Aggiornamenti in Tempo Reale per Applicazioni __CAPGO_KEEP_1__

Dispositivi

I dispositivi rappresentano le singole installazioni dell'applicazione gestite da Capgo. Il riquadro dispositivi API consente di monitorare e gestire i dispositivi, compresi i loro pacchetti (versioni), canali e stato di aggiornamento.

Ogni dispositivo ha caratteristiche e stati unici:

  • Piattaforma: iOS, Android o Electron
  • Bundle (versione): Bundle (versione) corrente e versione di costruzione nativa
  • Ambiente: Produzione o sviluppo, emulatore o dispositivo fisico
  • Canale: Assegnazione di canale di aggiornamento corrente
  • ID personalizzato: Identificatore facoltativo per scopi di tracciamento personalizzati
  1. Tracciamento Bundle (versione): Monitorare l'adozione del bundle (versione) del dispositivo per garantire l'assorbimento degli aggiornamenti
  2. Gestione dei Canali: Assegna dispositivi ai canali appropriati in base alle esigenze di testing
  3. Consapevolezza dell'ambiente: Gestisci ambienti diversi (prod/dev/emulatore) in modo appropriato
  4. Identificazione personalizzata: Utilizza ID personalizzati per integrarti con i tuoi sistemi esistenti

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

Collega un dispositivo a una versione specifica o canale del pacchetto.

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

Recupera le informazioni del dispositivo. Utilizza la paginazione basata sul cursore per il recupero efficiente di grandi elenchi di dispositivi.

  • app_id: Obbligatorio. L'ID del tuo app
  • device_id: Facoltativo. ID di dispositivo specifico per recuperare un singolo dispositivo
  • cursor: Facoltativo. Cursor dalla risposta precedente per la paginazione
  • limit: Facoltativo. Numero di dispositivi per pagina (default: 50)
Finestra del terminale
# 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"

Quando si richiedono più dispositivi (no device_id parametro):

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

Quando si richiede un dispositivo specifico con device_id parametro, restituisce l'oggetto dispositivo direttamente:

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/

Disconnetti un dispositivo dal suo override di canale. Ciò resettà il dispositivo per utilizzare il suo canale predefinito.

Non puoi eliminare un dispositivo con questo endpoint, esso influisce solo sull'override di canale.

Parametri di query
interface Device {
device_id: string
app_id: string
}
Finestra del terminale
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"
}

Scenari di errori comuni e relative risposte:

// 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. Registrazione dispositivo in versione beta
{
"app_id": "app_123",
"device_id": "device_456",
"channel": "beta"
}
  1. Override della versione
{
"app_id": "app_123",
"device_id": "device_456",
"version_id": "1.1.0"
}
  1. Ripristina al canale predefinito
// Use DELETE endpoint to remove overrides
  1. MonitoraggioVerifica regolarmente lo stato del dispositivo e la distribuzione del pacchetto (versione)
  2. Test: Utilizza ID personalizzati per identificare facilmente i dispositivi di test
  3. Risoluzione Problemi: Traccia gli aggiornamenti dei dispositivi e le assegnazioni dei canali
  4. Controllo Versione Nativa: Monitora le versioni degli app nativi per garantire la compatibilità