Dispositivi
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Gli dispositivi sono installazioni di app individuali che inviano dati di aggiornamento a Capgo. Utilizzare questo API per recuperare quei dati o impostare e rimuovere un override di canale privato specifico per dispositivo.
Metadati del dispositivo
Sottosezione intitolata “Metadati del dispositivo”Each record can include the device ID, platform, updater and OS versions, native build, installed bundle, production and emulator state, custom ID, and channel override.
Quando disponibile, country_code è l'ultima code ISO 3166-1 a due lettere valida ricevuta da un Cloudflare-gestito richiesta per il dispositivo. Non è un GPS o un valore di posizione fornito dall'app. Può essere null quando non disponibile; utilizza una ricerca singola dispositivo quando ne hai bisogno questo campo.
Punti di accesso
Sottosezione intitolata “Punti di accesso”https://api.capgo.app/device/
Imposta un sovrapposto dispositivo specifico a un privato canale. Per scegliere un bundle per un dispositivo, assegna quel bundle al canale; non sono supportate sovrapposizioni di bundle per dispositivo diretto. L'override scade dopo 90 giorni dall'ultima scrittura a meno che non lo si riassegna con 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
Section titled “Example request”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/Canali pubblici non possono essere utilizzati come override per dispositivi.
Risposta di successo
Sezione intitolata “Risposta di successo”{ "status": "ok"}https://api.capgo.app/device/
Recupera i metadati del dispositivo. I risultati sono paginati a cursor quando si omette device_id.
Parametri di query
Sezione intitolata “Parametri di query”app_id: ID di applicazione obbligatorio, comecom.example.app.device_idID dispositivo facoltativo. Quando presente, la risposta è un singolo dispositivo piuttosto che una lista paginata.customIdModeFacoltativo booleano. Impostato sutrueper restituire solo dispositivi con un campo non vuotocustom_id.cursor: Cursor facoltativo dalla precedente risposta della lista.limit: Numero facoltativo di dispositivi per pagina.
Richieste di esempio
Sottosezione intitolata “Richieste di esempio”# 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
Section titled “Response types”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 is populated by a device-specific lookup when Capgo has stored a valid Cloudflare-derived country code. Requests without a valid country do not clear the last valid value; list responses may return null per questo campo.
Esempio di risposta (elenco)
Sezione intitolata “Esempio di risposta (elenco)”{ "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}Esempio di risposta (singolo dispositivo)
Sezione intitolata “Esempio di risposta (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"}Cancella
Sezione intitolata “Cancella”https://api.capgo.app/device/
Rimuovi l'override del canale di un dispositivo. Il dispositivo utilizzerà nuovamente la sua selezione di canale normale; questo endpoint non cancella il suo record di metadati.
Parametri di richiesta o query
Sezione intitolata “Parametri di richiesta o query”interface DeviceOverrideRemoval { app_id: string; device_id: string;}Esempio di richiesta
Sottosezione intitolata “Esempio di richiesta”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
Section titled “Success response”{ "status": "ok"}Errore utilizza uno stato di errore HTTP e un corpo JSON con error and message codici di errore comuni includono:
invalid_app_idquandoapp_idnon è un identificatore di dominio inverso.device_not_foundper una ricerca di dispositivo sconosciuto.channel_not_foundquando il canale richiesto non esiste.public_channel_overridequando si tenta di sovrascrivere un dispositivo a un canale pubblico.invalid_version_idutilizzare un canale al posto di un bundle diretto.cannot_access_appocannot_access_channelquando il chiave API manca della permessione richiesta.
Casi d'uso comuni
Sezione intitolata “Casi d'uso comuni”-
Spostare un dispositivo di test in un canale beta privato
{"app_id": "com.example.app","device_id": "device_456","channel": "beta"} -
Ripristina un dispositivo alla selezione del canale normale
Usa il
DELETEendpoint with the app and device IDs.
Sezione intitolata “Continua da dispositivi”
Sezione intitolata “Continua da dispositivi”Se stai utilizzando context connettilo per pianificare la routing del canale e la distribuzione in fasi Channels per i dettagli di implementazione nei canali, Channels per i dettagli di implementazione nei canali, Canali per i dettagli di implementazione in Canali, Soluzione di Test di Beta per il flusso di lavoro del prodotto nella Soluzione di Test Beta Soluzione di Targeting della Versione per il flusso di lavoro del prodotto nella Versione Targeting Solution.