Geräte
Kopieren Sie einen Einrichtungsprompt mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
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.
Gerätemetadaten
Abschnitt mit dem Titel “Gerätemetadaten”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.
Endpunkte
Sektion mit dem Titel „Endpunkte“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.
Anforderungskörper
Sektion mit dem Titel „Anforderungskörper“interface DeviceChannelOverride { app_id: string; // reverse-domain app ID, for example com.example.app device_id: string; channel: string; // existing non-public channel name}Beispielanfrage
Abschnitt mit dem Titel „Beispielanfrage“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.
Erfolgsantwort
Abschnitt mit dem Titel „Erfolgsantwort“{ "status": "ok"}https://api.capgo.app/device/
Gerätemetadaten abrufen. Die Ergebnisse werden bei der Auslassung der Paginierung mit der Mauszeiger gesteuert. device_id.
Abfrageparameter
Abschnitt mit dem Titel „Abfrageparameter“app_id: Erforderliche rückwärts-domänen-Anwendungs-ID, wiecom.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 auftrueum nur Geräte mit einer nicht leerencustom_id.cursor: Optional Cursor aus der vorherigen Listenantwort.limit: Optional Anzahl von Geräten pro Seite.
Beispielanfragen
Abschnitt mit dem Titel “Beispielanfragen”# Get the first pagecurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=com.example.app"
# Get one device, including its request-derived country when availablecurl -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 IDcurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=com.example.app&customIdMode=true"
# Get the next pagecurl -H "authorization: your-api-key" \ "https://api.capgo.app/device/?app_id=com.example.app&cursor=2024-01-01T00:00:00Z%7Cdevice_456"Antworttypen
Abschnitt mit dem Titel “Antworttypen”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.
Beispielantwort (Liste)
Abschnitt mit dem Titel “Beispielantwort (Liste)”{ "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}Beispielantwort (einzelnes Gerät)
Abschnitt mit dem Titel “Beispielantwort (einzelnes Gerät)”{ "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.
Anforderungskörper oder Abfrageparameter
Abschnitt mit dem Titel „Anforderungskörper oder Abfrageparameter“interface DeviceOverrideRemoval { app_id: string; device_id: string;}Beispielanfrage
Abschnitt mit dem Titel „Beispielanfrage“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/Erfolgsantwort
Abschnitt mit dem Titel „Erfolgsantwort“{ "status": "ok"}Fehler verwenden einen HTTP-Fehlerstatus und ein JSON-Body mit error und message Felder. Gemeinsame Fehlercodes umfassen:
invalid_app_idalsapp_idnicht ein umgekehrter-Domänen-Identifier ist.device_not_foundzur Suche nach einem unbekannten Gerät.channel_not_foundals der angeforderte Kanal nicht existiert.public_channel_overrideals man versucht, ein Gerät zu einem öffentlichen Kanal zu überschreiben.invalid_version_idals man versucht, eine direkte Bundle-Übernahme durchzuführen; verwenden Sie einen Kanal stattdessen.cannot_access_appodercannot_access_channelals der API-Schlüssel die erforderliche Berechtigung fehlt.
Gemeinsame Verwendungsfälle
Sektion mit dem Titel „Gängige Verwendungsfälle“-
Ein Testgerät auf einen privaten Beta-Kanal verschieben
{"app_id": "com.example.app","device_id": "device_456","channel": "beta"} -
Ein Gerät auf die normale Kanalwahl zurücksetzen
Verwenden Sie den
DELETEEndpunkt mit den Anwendungs- und Geräte-IDs.
Fortsetzen von Geräten
Sektion mit dem Titel „Fortsetzen von Geräten“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.