Zum Inhalt springen

Geräte

Geräte sind einzelne Anwendungsinstallationen, die Updater-Metadaten an Capgo melden. Verwenden Sie diesen API zum Abrufen dieser Metadaten oder zum Setzen und Löschen eines Geräte-spezifischen privaten-Kanal-Überlappens.

Jedes Eintrag kann die Geräte-ID, Plattform, Updater und Betriebssystemversion, native Build, installierte Bundle, Produktions- und Emulatorzustand, benutzerdefinierte ID und Kanal-Übertrag enthalten.

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

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

Setzen Sie eine Geräte-spezifische Überschreibung auf ein privates Kanal. Um für ein Gerät einen Bundle auszuwählen, weisen Sie diesem Kanal den Bundle zu; direkte per-Geräte-Überschreibungen von Bundles werden nicht unterstützt. Die Überschreibung erlischt nach 90 Tagen nach der letzten Schreiboperation, es sei denn, Sie setzen sie erneut mit POST wieder her.

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 die folgenden Parameter weglassen: device_id.

  • app_id: Erforderlicher rückwärtsgeordneter Anwendungs-ID, z. B. com.example.app.
  • device_id: Optionaler Geräte-ID. Wenn diese vorhanden ist, ist die Antwort ein einzelnes Gerät und nicht eine paginierte Liste.
  • customIdMode: Optional boolean. Set auf true um nur Geräte mit einer nicht leeren custom_id.
  • cursor: Optional Cursor aus der vorherigen Listeantwort.
  • limit: Optional 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/

Ein Geräts Kanal-Überschreibung entfernen. Das Gerät wird seinen normalen Kanal-Wahl wieder verwenden; dieser Endpunkt löscht nicht dessen Metadaten-Eintrag.

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-Body mit error und message Fehlercodes. Gemeinsame Fehlercodes umfassen:

  • invalid_app_id als app_id ist kein umgekehrter Domänenbezeichner.
  • device_not_found zur Suche nach einem unbekannten Gerät.
  • channel_not_found als der angeforderte Kanal nicht existiert.
  • public_channel_override als versucht wird, ein Gerät zu einem öffentlichen Kanal zu überschreiben.
  • invalid_version_id als versucht wird, ein Gerät direkt zu überschreiben; verwenden Sie stattdessen einen Kanal.
  • cannot_access_app oder cannot_access_channel when the API key lacks the required permission.

als der Schlüssel __CAPGO_KEEP_0__ die erforderliche Berechtigung nicht besitzt.

Gängige Anwendungsfälle
  1. Abschnitt mit dem Titel „Gängige Anwendungsfälle“

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

    Verwende die DELETE Durchführe eine Anfrage mit den Anwendungs- und Geräte-IDs.

Wenn du die Geräte für die Planung der Kanalroutings und der geplanten Rollout verwendest, verbinde sie mit Kanälen für die Implementierungsdetails in Kanälen Kanäle für die Implementierungsdetails in den Kanälen, Kanäle für die Implementierungsdetails in den Kanälen, Beta-Testlösung für den Produktworkflow in der Beta-Testlösung, und Versionziel-Lösung für den Produktworkflow in der Versionziel-Lösung.