Dispositivi
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
I Device sono singole installazioni dell'app che inviano i metadati dell'updater a Capgo. Usa questa API per recuperare tali metadati o per impostare e rimuovere un override del canale privato specifico per il dispositivo.
Metadati del dispositivo
la sezione intitolata “Device metadata”Ogni record può includere il device ID, la piattaforma, le versioni di updater e OS, il Native Build, il bundle installato, lo stato di produzione o emulatore, l'ID personalizzato e l'override del channel.
Quando disponibile, country_code è il più recente codice paese ISO 3166-1 di due lettere code ricevuto da una richiesta gestita da Cloudflare per il dispositivo. Non è un valore GPS o di posizione fornito dalla tua app. Può essere null quando non disponibile; usa una ricerca per singolo dispositivo se ti serve questo campo.
Endpoint
Sezione intitolata “Endpoints”https://api.capgo.app/device/
Set a device-specific override to a canale privato. Per scegliere un bundle per un dispositivo, assegna quel bundle al canale; non sono supportati gli override diretti del bundle per singolo dispositivo. L'override scade dopo 90 giorni dall'ultimo aggiornamento, a meno che non venga eseguito nuovamente un POST.
Corpo della richiesta
Sezione intitolata “Corpo della richiesta”interface DeviceChannelOverride { app_id: string; // reverse-domain app ID, for example com.example.app device_id: string; channel: string; // existing non-public channel name}Esempio di richiesta
Sezione intitolata “Richiesta di esempio”curl -X POST \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "device_id": "device_456", "channel": "beta" }' \ https://api.capgo.app/device/I canali pubblici non possono essere usati come override di device.
Risposta di successo
Sezione intitolata “Risposta di successo”{ "status": "ok"}https://api.capgo.app/device/
Recupera i metadati del device. I risultati sono paginati tramite cursore quando ometti device_id.
Parametri di query
Sezione intitolata “Parametri di query”app_id: ID app in reverse-domain richiesto, ad esempiocom.example.app.device_id: ID dispositivo opzionale. Se presente, la risposta conterrà un singolo dispositivo invece di una lista paginata.customIdMode: Booleano opzionale. Imposta atrueper restituire solo i dispositivi con uncustom_id.cursor: Cursor opzionale dalla risposta della lista precedente.limit: Numero opzionale di dispositivi per pagina.
Esempi di richieste
Sezione intitolata “Esempi di richieste”# Get the first pagecurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=com.example.app"
# Get one device, including its request-derived country when availablecurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=com.example.app&device_id=device_456"
# Get only devices with a custom IDcurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=com.example.app&customIdMode=true"
# Get the next pagecurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=com.example.app&cursor=2024-01-01T00:00:00Z%7Cdevice_456"Tipi di risposta
Sezione intitolata “Tipi di risposta”interface DeviceListResponse { data: Device[]; nextCursor?: string; hasMore: boolean;}
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" | "electron"; plugin_version: string; os_version: string; version_build: string; is_prod: boolean; is_emulator: boolean; key_id: string | null; install_source: string | null; country_code: string | null;}country_code viene popolato tramite un lookup specifico per il dispositivo quando Capgo ha memorizzato un code di paese valido derivato da Cloudflare. Le richieste senza un paese valido non cancellano l'ultimo valore valido; le risposte della lista possono restituire null per questo campo.
Risposta di esempio (lista)
Sezione intitolata “Risposta di esempio (lista)”{ "data": [ { "device_id": "device_456", "custom_id": "test-device-1", "version": 1, "version_name": "1.0.0", "app_id": "com.example.app", "platform": "ios", "plugin_version": "5.0.0", "os_version": "17.0", "version_build": "1", "is_prod": true, "is_emulator": false, "key_id": null, "install_source": null, "country_code": null, "updated_at": "2024-01-01T00:00:00Z" } ], "nextCursor": "2024-01-01T00:00:00Z|device_456", "hasMore": true}Risposta di esempio (singolo dispositivo)
Sezione intitolata “Risposta di esempio (singolo dispositivo)”{ "device_id": "device_456", "custom_id": "test-device-1", "version": 1, "version_name": "1.0.0", "app_id": "com.example.app", "platform": "ios", "plugin_version": "5.0.0", "os_version": "17.0", "version_build": "1", "is_prod": true, "is_emulator": false, "key_id": "MIIB", "install_source": null, "country_code": "FR", "updated_at": "2024-01-01T00:00:00Z", "channel": "beta"}ELIMINA
Sezione intitolata “DELETE”https://api.capgo.app/device/
Rimuove l'override del canale di un dispositivo. Il dispositivo tornerà a usare la normale selezione del canale; questo endpoint non elimina il record dei metadati.
Corpo della richiesta o parametri query
Sezione intitolata “Corpo della richiesta o parametri query”interface DeviceOverrideRemoval { app_id: string; device_id: string;}Esempio di richiesta
Sezione intitolata “Richiesta di esempio”curl -X DELETE \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "device_id": "device_456" }' \ https://api.capgo.app/device/Risposta di successo
Sezione intitolata “Risposta di successo”{ "status": "ok"}Gli errori utilizzano un codice di stato HTTP e un corpo JSON con error e message campi. I codici di errore comuni includono:
invalid_app_idquandoapp_idnon è un identificatore reverse-domain.device_not_foundper una ricerca di un dispositivo sconosciuto.channel_not_foundquando il canale richiesto non esiste.public_channel_overridedurante il tentativo di sovrascrivere un dispositivo con un canale pubblico.invalid_version_iddurante un tentativo di bundle override diretto; usa un canale al suo posto.cannot_access_appocannot_access_channelquando la chiave API non ha i permessi necessari.
Casi d'uso comuni
Sezione intitolata “Casi d'uso comuni”-
Sposta un dispositivo di test su un canale beta privato
{"app_id": "com.example.app","device_id": "device_456","channel": "beta"} -
Ripristina la selezione del canale normale per un dispositivo
Usa il
DELETEendpoint con gli ID dell'app e del dispositivo.
Continua da Devices
Sezione intitolata “Continua da Devices”Se stai usando Dispositivi per pianificare il routing dei canali e il rollout graduale, connettilo a Canali per i dettagli di implementazione nei Channels, Canali per i dettagli di implementazione nei Channels, Canali per i dettagli di implementazione nei Channels, Soluzione Beta Testing per il workflow di prodotto nella Soluzione Beta Testing, e Soluzione Version Targeting per il workflow di prodotto nella Soluzione Version Targeting.