Passer au contenu

Appareils

Les appareils sont des installations d'applications individuelles qui transmettent des métadonnées de mise à jour à Capgo. Utilisez ce API pour récupérer ces métadonnées ou définir et supprimer un paramètre de canal privé spécifique à l'appareil.

Chaque enregistrement peut inclure l'ID de l'appareil, le système d'exploitation, les versions de l'actualiseur et du système d'exploitation, la construction native, le bundle installé, l'état de production et d'émulateur, l'ID personnalisé et le paramètre de canal de substitution.

Lorsqu'il est disponible, country_code is the latest valid two-letter ISO 3166-1 country code received from a Cloudflare-handled request for the device. It is not GPS or a location value supplied by your app. It can be null lorsqu'il n'est pas disponible ; utilisez une recherche unique pour un appareil lorsque vous avez besoin de ce champ.

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

Définir un décalage spécifique au dispositif pour un canal privé. Pour choisir un bundle pour un appareil, affectez ce bundle au canal ; les décalages de bundle par appareil directs ne sont pas pris en charge. Corps de la demande

Section intitulée « Corps de la demande »

Copier dans le presse-papier
interface DeviceChannelOverride {
app_id: string; // reverse-domain app ID, for example com.example.app
device_id: string;
channel: string; // existing non-public channel name
}
Fenêtre de terminal
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/

Les canaux publics ne peuvent pas être utilisés comme des déclencheurs de dispositif.

{
"status": "ok"
}

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

Récupérer les métadonnées du dispositif. Les résultats sont paginés par curseur lorsque vous omittrez device_id.

  • app_id: ID de domaine inverse obligatoire, tel que com.example.app.
  • device_id: ID de appareil facultatif. Lorsqu'il est présent, la réponse est un appareil unique plutôt qu'une liste paginée.
  • customIdMode: Vrai facultatif. Défini sur true pour retourner uniquement les appareils avec un champ non vide custom_id.
  • cursor: Curseur facultatif depuis la réponse de liste précédente.
  • limit: Nombre facultatif d'appareils par page.
Fenêtre de terminal
# 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 est renseigné par une recherche spécifique au dispositif lorsque Capgo a stocké un pays Cloudflare-dérivé valide code. Les requêtes sans pays valide ne suppriment pas la valeur valide précédente; les listes de réponse peuvent retourner null pour ce champ.

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

Supprimer la surcharge de canal d'un appareil. L'appareil utilisera à nouveau sa sélection de canal normale ; cet endpoint ne supprime pas son enregistrement de métadonnées.

interface DeviceOverrideRemoval {
app_id: string;
device_id: string;
}
Fenêtre de terminal
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"
}

Les erreurs utilisent un code d'état HTTP et un corps JSON avec error et message les champs. Les codes d'erreur courants incluent :

  • invalid_app_id lorsque app_id n'est pas un identifiant de domaine inversé.
  • device_not_found pour une recherche de dispositif inconnu.
  • channel_not_found lorsque le canal demandé n'existe pas.
  • public_channel_override lorsque vous essayez de surcharger un dispositif vers un canal public.
  • invalid_version_id lorsque vous essayez de surcharger un bundle directement ; utilisez un canal à la place.
  • cannot_access_app ou cannot_access_channel when the API key lacks the required permission.
  1. Déplacer un appareil de test vers un canal de bêta privée

    {
    "app_id": "com.example.app",
    "device_id": "device_456",
    "channel": "beta"
    }
  2. Réinitialiser un appareil pour une sélection de canal normale

    Utilisez l'endpoint avec les identifiants de l'application et de l'appareil. DELETE Continuez d'ici les appareils

Section intitulée « Continuez d'ici les appareils »

Si vous utilisez les appareils

pour planifier la routage des canaux et la mise en production étalée, connectez-l’avec endpoint with the app and device IDs. Section titled “Common use cases” Canaux pour le détail d'implémentation dans Canaux, Canaux pour le détail d'implémentation dans Canaux, Canaux pour le détail d'implémentation dans Canaux, Solution de test bêta pour le flux de travail du produit dans Solution de test bêta, et Solution de ciblage de version pour le flux de travail du produit dans Solution de ciblage de version.