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-Überladens.

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

Wenn verfügbar, country_code ist die neueste gültige zwei-Buchstaben-ISO 3166-1-Länderkennung code , die von einem Cloudflare-bearbeiteten Anforderung für das Gerät erhalten wurde. Es handelt sich nicht um GPS oder eine durch Ihre App bereitgestellte Standortwerte. Es kann null wenn nicht verfügbar sein; verwenden Sie einen Einzelgeräte-Abfrage, wenn Sie diesen Feld benötigen.

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

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, pro-Gerät-Überlagerungen von Bundles werden nicht unterstützt. Die Überlagerung erlischt nach 90 Tagen nach der letzten Schreiboperation, es sei denn, Sie setzen sie erneut mit einem POST-Antrag fest.

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 dürfen nicht als Geräte-Überlagerungen verwendet werden.

{
"status": "ok"
}

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

Gerätmetadata abrufen. Die Ergebnisse sind paginiert, wenn Sie die folgenden Parameter weglassen device_id.

  • app_id: Erforderlicher rückwärts-domänen-App-Name, z. B. com.example.app.
  • device_id: Optionaler Geräte-Name. Wenn vorhanden, ist die Antwort ein einzelnes Gerät anstatt eine paginierte Liste.
  • customIdMode: Optionaler boolescher Wert. Setzen Sie ihn auf true um nur Geräte mit einem nicht leeren custom_id.
  • cursor: Optionaler Cursor aus der vorherigen Listenantwort.
  • 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 eine gültige Cloudflare-abgeleitete Landesinformation code gespeichert hat. Anfragen ohne gültige Landesinformation löschen nicht die letzte gültige Werte; Listenantworten können folgende Werte zurückgeben 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/

Entferne die Kanalüberschreibung eines Geräts. Das Gerät wird seinen normalen Kanal auswählen; dieser Endpunkt löscht nicht die Metadatensatz des Geräts.

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 Felder. Häufige Fehlercodes umfassen:

  • invalid_app_id wenn app_id ist kein umgekehrter Domänen-Bezeichner.
  • device_not_found für einen unbekannten Geräteaufruf.
  • channel_not_found wenn der angeforderte Kanal nicht existiert.
  • public_channel_override Wenn Sie versuchen, ein Gerät auf einen öffentlichen Kanal umzustellen.
  • invalid_version_id Wenn Sie versuchen, ein Gerät direkt zu überschreiben; verwenden Sie stattdessen einen Kanal.
  • cannot_access_app oder cannot_access_channel Wenn der API-Schlüssel die erforderliche Berechtigung nicht besitzt.

Häufige Anwendungsfälle

Section titled “Common use cases”
  1. Move a test device to a private beta channel

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

    Verwenden Sie DELETE In die Zwischenablage kopieren

Ein Gerät auf die normale Kanalwahl zurücksetzen

Abschnitt mit dem Titel “Weiter von Geräten”

Wenn Sie "Geräte" verwenden Geräte um es mit zu planen, Kanalrouting und rollouts in Stufen zu verbinden Kanäle für die Implementierungsdetails in den 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 das Produktworkflow in der Beta-Testlösung Version Targeting Solution für das Produktworkflow in Versionziel-Lösung.