Zum Inhalt springen

Geräte

Geräte sind einzelne App-Installationen, die Aktualisierungsdaten an Capgo melden. Verwenden Sie diesen API zum Abrufen dieser Daten oder zum Setzen und Löschen eines Gerätespezifischen Überladungskanäls.

Jedes Datensatz kann den Geräte-ID, Plattform, Aktualisierungs- und Betriebssystemversion, native Build, installierte Bundle, Produktions- und Emulatortyp, benutzerdefinierte ID und Kanal-Überladung enthalten.

Wenn verfügbar, country_code ist die aktuellste gültige zwei-Buchstaben-ISO 3166-1-Ländercode code , der von einem Cloudflare-bearbeiteten Antrag für das Gerät erhalten wurde. Es handelt sich nicht um GPS oder eine Standortwerte, die von Ihrer App bereitgestellt werden. Es kann null zum Beispiel verwendet werden, wenn es nicht verfügbar ist; verwenden Sie einen einzelnen Geräte-Abfrage, wenn Sie diesen Feld benötigen.

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

Ein Geräte-spezifisches Überschreiben auf __CAPGO_KEEP_0__ setzen zu einem privaten Kanal. Um für ein Gerät einen Bundle auszuwählen, weisen Sie diesem Kanal den Bundle zu; direkte per-Geräte-Bundle-Überschreibungen werden nicht unterstützt.

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

Öffentliche Kanäle können nicht als Geräteüberschreibungen verwendet werden.

{
"status": "ok"
}

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

Gerätedaten abrufen. Die Ergebnisse werden paginiert, wenn Sie diese Option auslassen. device_id.

  • app_id: Erforderlicher rückwärtsgeordneter Anwendungs-ID, z. B. com.example.app.
  • device_id: Optional Geräte-ID. Wenn vorhanden, ist die Antwort ein einzelnes Gerät anstatt eine paginierte Liste.
  • customIdMode: Optionaler Boolean. Setze auf true um nur Geräte mit einer nicht leeren custom_id.
  • cursor: Optionaler Cursor aus der vorherigen Listeantwort.
  • limit: Optionaler Anzahl von Geräten pro Seite.
Terminalfenster
# 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 wird durch eine Gerätespezifische Abfrage befüllt, wenn Capgo ein gültiges Cloudflare-abgeleitetes Land code gespeichert hat. Anfragen ohne gültiges Land löschen nicht den letzten gültigen Wert; Listeantworten können null für dieses Feld.

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

Entfernen Sie die Kanalüberschreibung eines Geräts. Das Gerät wird wieder seinen normalen Kanalwahlverlauf verwenden; diese Endpunkt löscht nicht seinen Metadaten-Record.

interface DeviceOverrideRemoval {
app_id: string;
device_id: string;
}
Terminalfenster
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"
}

Fehler verwenden einen HTTP-Fehlerstatus und ein JSON-Körpers mit error und message Fehlercodes. Gemeinsame Fehlercodes umfassen:

  • invalid_app_id als app_id nicht ein umgekehrter Domänen-Bezeichner ist.
  • device_not_found für eine unbekannte Geräteabfrage.
  • channel_not_found als der angeforderte Kanal nicht existiert.
  • public_channel_override als versucht wird, ein Gerät auf einen öffentlichen Kanal umzustellen.
  • invalid_version_id als versucht wird, eine direkte Bundle-Übernahme durchzuführen; verwenden Sie einen Kanal stattdessen.
  • cannot_access_app oder cannot_access_channel als der API-Schlüssel die erforderliche Berechtigung fehlt.
  1. Ein Testgerät auf einen privaten Beta-Kanal verschieben

    {
    "app_id": "com.example.app",
    "device_id": "device_456",
    "channel": "beta"
    }
  2. Ein Gerät auf die normale Kanalwahl zurücksetzen

    Verwende den DELETE Endpoint mit den App- und Geräte-IDs.

Wenn Sie Geräte für die Planung der Kanalroutings und der geplanten Veröffentlichung verwenden, verbinden Sie es mit Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Kanäle für die Implementierungsdetails in Kanäle, Beta-Testlösung für den Produktworkflow in Beta-Testlösung, und Versionsziel-Lösung für den Produktworkflow in Versionsziel-Lösung.