Zum Inhalt springen

Geräte

Geräte sind einzelne App-Installationen, 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-Übertragung.

Jedes Eintrag kann den Geräte-ID, Plattform, Updater- und Betriebssystemversionen, native Build, installierte Bundle, Produktions- und Emulatorzustand, benutzerdefinierte ID und Kanal-Übertragung umfassen.

Wenn verfügbar, country_code ist der aktuellste gültige zwei-Buchstaben-ISO 3166-1-Ländercode code , der von einem Cloudflare-bearbeiteten Anforderung für das Gerät erhalten wurde. Es ist weder GPS noch eine durch Ihre App bereitgestellte Standortwerte. Es kann sein. null When nicht verfügbar; verwenden Sie einen Ein-Gerät-Lookup, wenn Sie diesen Wert benötigen.

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

Einen Geräte-spezifischen Wert auf eine private Kanal. Um eine Bundle für ein Gerät auszuwählen, weisen Sie diesem Kanal die Bundle zu; direkte per-Gerät-Bundle-Überprüfungen 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ätemetadaten abrufen. Die Ergebnisse werden bei der Auslassung der Paginierung mit der Mauszeiger gesteuert. device_id.

  • app_id: Erforderliche rückwärts-domänen-Anwendungs-ID, wie com.example.app.
  • device_id: Optional Geräte-ID. Wenn vorhanden, ist die Antwort ein einzelnes Gerät anstatt einer paginierten Liste.
  • customIdMode: Optional boolean. Setzen Sie auf true um nur Geräte mit einer nicht leeren custom_id.
  • cursor: Optional Cursor aus der vorherigen Listenantwort.
  • 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/

Entfernen Sie die Kanalüberschreibung eines Geräts. Das Gerät wird seinen normalen Kanalwahl wieder verwenden; dieser Endpunkt löscht nicht seinen Metadatensatz.

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. Gemeinsame Fehlercodes umfassen:

  • invalid_app_id als app_id nicht ein umgekehrter-Domänen-Identifier ist.
  • device_not_found zur Suche nach einem unbekannten Gerät.
  • channel_not_found als der angeforderte Kanal nicht existiert.
  • public_channel_override als man versucht, ein Gerät zu einem öffentlichen Kanal zu überschreiben.
  • invalid_version_id als man versucht, 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

    Verwenden Sie den DELETE Endpunkt mit den Anwendungs- und Geräte-IDs.

Wenn Sie Geräte für die Planung von Kanalrouten und der geplanten Rollout verwenden, verbinden Sie es mit Kanälen für die Implementierungsdetails in Channels, Channels für die Implementierungsdetails in Channels, Channels für die Implementierungsdetails in Channels, 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.