Devices
I Devices rappresentano singole installazioni della tua app gestite da Capgo. L’API Devices ti permette di tracciare e gestire i dispositivi, incluse le loro versioni, canali e stato di aggiornamento.
Comprendere i Devices
Section titled “Comprendere i Devices”Ogni dispositivo ha caratteristiche e stati unici:
- Platform: iOS o Android
- Version: Versione bundle corrente e versione build nativa
- Environment: Produzione o sviluppo, emulatore o dispositivo fisico
- Channel: Assegnazione canale di aggiornamento corrente
- Custom ID: Identificatore opzionale per i tuoi scopi di tracciamento
Migliori Pratiche
Section titled “Migliori Pratiche”- Tracciamento Versioni: Monitora le versioni dei dispositivi per garantire l’adozione degli aggiornamenti
- Gestione Canali: Assegna i dispositivi ai canali appropriati in base alle esigenze di test
- Consapevolezza Ambiente: Gestisci diversi ambienti (prod/dev/emulator) in modo appropriato
- Identificazione Personalizzata: Usa ID personalizzati per integrare con i tuoi sistemi esistenti
Endpoints
Section titled “Endpoints”https://api.capgo.app/device/
Collega un dispositivo a una versione o canale specifico.
Request Body
Section titled “Request Body”interface DeviceLink { app_id: string device_id: string version_id?: string // version name channel?: string // channel name}Richiesta di Esempio
Section titled “Richiesta di Esempio”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/Risposta di Successo
Section titled “Risposta di Successo”{ "status": "ok"}https://api.capgo.app/device/
Recupera informazioni sul dispositivo. Utilizza la paginazione basata su cursore per un recupero efficiente di grandi liste di dispositivi.
Parametri Query
Section titled “Parametri Query”app_id: Obbligatorio. L’ID della tua appdevice_id: Opzionale. ID dispositivo specifico per recuperare un singolo dispositivocursor: Opzionale. Cursore dalla risposta precedente per la paginazionelimit: Opzionale. Numero di dispositivi per pagina (predefinito: 50)
Richiesta di Esempios
Section titled “Richiesta di Esempios”# 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"Tipo di Risposta (Lista)
Section titled “Tipo di Risposta (Lista)”Quando si richiedono più dispositivi (nessun parametro device_id):
interface DeviceListResponse { data: Device[]; nextCursor?: string; // Passa questo come parametro 'cursor' per ottenere la pagina successiva hasMore: boolean; // true se ci sono più pagine disponibili}
interface Device { updated_at: string; device_id: string; custom_id: string; version?: number; version_name: string | null; channel?: string; app_id: string; platform: "ios" | "android"; plugin_version: string; os_version: string; version_build: string; is_prod: boolean; is_emulator: boolean;}Tipo di Risposta (Dispositivo Singolo)
Section titled “Tipo di Risposta (Dispositivo Singolo)”Quando si richiede un dispositivo specifico con il parametro device_id, restituisce l’oggetto dispositivo direttamente:
interface Device { updated_at: string; device_id: string; custom_id: string; version?: number; version_name: string | null; channel?: string; app_id: string; platform: "ios" | "android"; plugin_version: string; os_version: string; version_build: string; is_prod: boolean; is_emulator: boolean;}Risposta di Esempio (Lista)
Section titled “Risposta di Esempio (Lista)”{ "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}Risposta di Esempio (Dispositivo Singolo)
Section titled “Risposta di Esempio (Dispositivo Singolo)”{ "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"}DELETE
Section titled “DELETE”https://api.capgo.app/device/
Scollega un dispositivo dalla sua sovrascrittura del canale. Questo reimposta il dispositivo per utilizzare il suo canale predefinito.
Query Parameters
Section titled “Query Parameters”interface Device { device_id: string app_id: string}Richiesta di Esempio
Section titled “Richiesta di Esempio”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/Risposta di Successo
Section titled “Risposta di Successo”{ "status": "ok"}Gestione degli Errori
Section titled “Gestione degli Errori”Scenari di errore comuni e le loro risposte:
// Device not found{ "error": "Device not found", "status": "KO"}
// Invalid 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"}Casi d’Uso Comuni
Section titled “Casi d’Uso Comuni”- Beta Device Registration
{ "app_id": "app_123", "device_id": "device_456", "channel": "beta"}- Version Override
{ "app_id": "app_123", "device_id": "device_456", "version_id": "1.1.0"}- Reset to Default Channel
// Use DELETE endpoint to remove overridesSuggerimenti per la Gestione dei Dispositivi
Section titled “Suggerimenti per la Gestione dei Dispositivi”- Monitoraggio: Controlla regolarmente lo stato del dispositivo e la distribuzione delle versioni
- Test: Usa ID personalizzati per identificare facilmente i dispositivi di test
- Risoluzione Problemi: Traccia gli aggiornamenti dei dispositivi e le assegnazioni dei canali
- Controllo Versioni: Monitora le versioni native dell’app per garantire la compatibilità