Saltare al contenuto

Dispositivi

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.

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.

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.

interface DeviceChannelOverride {
app_id: string; // reverse-domain app ID, for example com.example.app
device_id: string;
channel: string; // existing non-public channel name
}
Sezione intitolata “Esempio di richiesta”
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.

{
"status": "ok"
}

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

Recupera i metadati del dispositivo. I risultati sono paginati a cursor quando si omette device_id.

  • app_id: ID di applicazione obbligatorio, come com.example.app.
  • device_idID dispositivo facoltativo. Quando presente, la risposta è un singolo dispositivo piuttosto che una lista paginata.
  • customIdModeFacoltativo booleano. Impostato su true per restituire solo dispositivi con un campo non vuoto custom_id.
  • cursor: Cursor facoltativo dalla precedente risposta della lista.
  • limit: Numero facoltativo di dispositivi per pagina.
Fenestra del terminale
# Get the first page
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=com.example.app"
# Get one device, including its request-derived country when available
curl -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 ID
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=com.example.app&customIdMode=true"
# Get the next page
curl -H "authorization: your-api-key" \
"https://api.capgo.app/device/?app_id=com.example.app&cursor=2024-01-01T00:00:00Z%7Cdevice_456"
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.

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

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.

interface DeviceOverrideRemoval {
app_id: string;
device_id: string;
}
Fenestra del terminale
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/
{
"status": "ok"
}

Errore utilizza uno stato di errore HTTP e un corpo JSON con error and message codici di errore comuni includono:

  • invalid_app_id quando app_id non è un identificatore di dominio inverso.
  • device_not_found per una ricerca di dispositivo sconosciuto.
  • channel_not_found quando il canale richiesto non esiste.
  • public_channel_override quando si tenta di sovrascrivere un dispositivo a un canale pubblico.
  • invalid_version_id utilizzare un canale al posto di un bundle diretto.
  • cannot_access_app o cannot_access_channel quando il chiave API manca della permessione richiesta.
  1. Spostare un dispositivo di test in un canale beta privato

    {
    "app_id": "com.example.app",
    "device_id": "device_456",
    "channel": "beta"
    }
  2. Ripristina un dispositivo alla selezione del canale normale

    Usa il DELETE endpoint 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.