Base de connaissance Apps Panel

S’abonner

Enregistrement d'un device via API

Cet article traite de l'enregistrement d'un device dans la plateforme AppsPanel utile à des fins de connaissance des devices utilisant votre application mais aussi pour des fonctions avancées tels quel les notifications push le tout en utilisant notre API plutôt que nos SDKs.

 

 1.) Enregistrement / création du device

 

a.) POST sdk/devices

 

Pour créer un device il vous faudra faire un POST sur v4/sdk/devices/

Pour rappel les échanges se font en HTTPS sur une url de type :

https://monapp.apnl.ws/v4/sdk/devices/

 

A cela s'ajoute un ensemble d'headers à passer pour chaque requête :

 

Paramètre Description Obligatoire ? Exemple
Accept Détermine le format de sortie Non mais recommandé application/json ou application/xml
Accept-Language Détermine la langue Non fr_FR
X-AP-Key Détermine l'application cible Oui la "key" récupéré lors de la création de l'app
X-AP-Deviceuid Détermine de façon unique un device Oui L'IMEI sur Android ou encore l'IDFA sur iOS, l'important est de générer une chaine de caractère unique
X-AP-Os Détermine l'OS Oui 'iOS' ou 'android' ou 'wp'
X-AP-Appversion Il s'agit de la version de l'application appelant l'API Non '1.1'
X-AP-Sdkversion Il s'agit de la version du SDK Non '4.6.0'
X-AP-Network Il s'agit du type de network Non '3G/Edge' ou 'Wifi' ou '4G'
X-AP-Screen Il s'agit de la résolution du device executant l'application Non '320*480'
X-AP-Realtime Il s'agit du timestamp du moment ou la requête a été crée au niveau de l'application Non '1479992294'

 

Et enfin les données à envoyer en POST :

 

Paramètre Description Obligatoire ? Exemple
os Il s'agit de l'OS du device Oui 'iOS'
os_version Il s'agit de la version de l'OS Non '10.1.1'
model Il s'agit du modèle du device Oui 'iPhone'
model_version Il s'agit de la version du modèle du device Non 'iPhone8,1'
manufacturer Il s'agit du constructeur du device Non 'Apple'
sdkversion Il s'agit du numéro de version du sdk Non '4.6.0'
appversion Il s'agit du numéro de version de l'application appelant l'API Non '1.1'
name Il s'agit du nom du téléphone Non mais utile pour identifier un device de façon plus 'friendly' 'iPhone de Artz804'
lang Il s'agit de la langue du téléphone Non 'fr'
fuseau Il s'agit du nombre de seconde de décalage avec le fuseau horaire GMT Non '3600'
connection_type Il s'agit du type de connexion du device Non '3G/Edge'
components Un json contenant un ensemble de valeurs venant compléter les informations disponible sur le device Non '{  "screen" : {    "resolution" : "320*480",    "scale" : 2  },  "camera" : {  },  "memory" : {    "free_mb" : 149,    "total_mb" : 2048,    "wired_mb" : 219,    "active_mb" : 990,    "inactive_mb" : 199,    "used_mb" : 1409  },  "device" : {    "platformType" : "iPhone 6s",    "systemName" : "iOS",    "proximitySensor" : true,    "deviceName" : "iPhone de Artz804",    "brightness" : 9.747345,    "multitaskingEnabled" : true,    "screenWidth" : 320,    "systemVersion" : "10.1.1",    "screenHeight" : 480,    "bootTime" : "12:40:52",    "deviceModel" : "iPhone"  },  "disk" : {    "total" : 5.907227e+10,    "available" : 3.513641e+10  },  "carrier" : {    "carrierMobileNetworkCode" : "10",    "carrierISOCountryCode" : "fr",    "carrierName" : "SFR",    "carrierMobileCountryCode" : "208",    "carrierAllowsVOIP" : true  },  "battery" : {    "charging" : false,    "level_pourcentage" : 94  }}'

 

 

Un exemple minimal de POST v4/sdk/devices/ :

curl -X POST -H "Accept: application/json" -H "X-AP-Key: test" -H "X-AP-Deviceuid: 4e5a91431c2d15c3547ffb4011c5b7b9" -H "X-AP-Os: iOS" -F "os=iOS" -F "model=iPhone" "https://sdk-testappdev.apnl.ws/v4/sdk/devices/"

 

Un exemple complet de POST v4/sdk/devices/ (recommandé) :

curl -X POST -H "Accept: application/json" -H "Accept-Language: fr_FR" -H "X-AP-Key: test" -H "X-AP-Deviceuid: 4e5a91431c2d15c3547ffb4011c5b7b9" -H "X-AP-Os: iOS" -H "X-AP-Appversion: 1.1" -H "X-AP-Sdkversion: 4.6.0" -H "X-AP-Network: 3G/Edge" -H "X-AP-Screen: 320*480" -H "X-AP-Realtime: 1479992294" -F "os=iOS" -F "os_version=10.1.1" -F "model=iPhone" -F "model_version=iPhone8%2C1" -F "manufacturer=Apple" -F "sdkversion=4.6.0" -F "appversion=1.1" -F "name=iPhone de Artz804" -F "lang=fr" -F "fuseau=3600" -F "connection_type=3G/Edge" -F "components={  "screen" : {    "resolution" : "320*480"%2C    "scale" : 2  }%2C  "camera" : {  }%2C  "memory" : {    "free_mb" : 149%2C    "total_mb" : 2048%2C    "wired_mb" : 219%2C    "active_mb" : 990%2C    "inactive_mb" : 199%2C    "used_mb" : 1409  }%2C  "device" : {    "platformType" : "iPhone 6s"%2C    "systemName" : "iOS"%2C    "proximitySensor" : true%2C    "deviceName" : "iPhone de Artz804"%2C    "brightness" : 9.747345%2C    "multitaskingEnabled" : true%2C    "screenWidth" : 320%2C    "systemVersion" : "10.1.1"%2C    "screenHeight" : 480%2C    "bootTime" : "12:40:52"%2C    "deviceModel" : "iPhone"  }%2C  "disk" : {    "total" : 5.907227e%2B10%2C    "available" : 3.513641e%2B10  }%2C  "carrier" : {    "carrierMobileNetworkCode" : "10"%2C    "carrierISOCountryCode" : "fr"%2C    "carrierName" : "SFR"%2C    "carrierMobileCountryCode" : "208"%2C    "carrierAllowsVOIP" : true  }%2C  "battery" : {    "charging" : false%2C    "level_pourcentage" : 94  }}" "https://sdk-testappdev.apnl.ws/v4/sdk/devices/"

 

 

Afin de vérifier que le device a bien été enregistré vous avez deux solutions :

  • sur l'accueil du device center (devicecenter/), votre device devrait apparaitre dans les derniers devices ayant consulté l'application
  • sur la console dédié à la visualisation en détail des informations des devices enregistrés (devicecenter/devices/)

En cas de dysfonctionnement vérifiait d'abord que votre appel apparait dans la console api (monitoring/log).

 

b.) Implémentation

 

Il est recommandé d'appeler cette API à chaque lancement de votre application de façon à être certain d'avoir des informations le plus à jour possible.

 

2.) Modification d'une information

 

Pour des raisons d'optimisation il est possible de mettre à jour uniquement une donnée précise sans renvoyer l'intégralité des informations.

C'est le cas par exemple pour l'ajout des informations requises pour envoyer une notification push.

Il faut faire un PATCH sur /v4/sdk/devices/ avec comme données les clés / valeurs qu'on souhaitent mettre à jour.

Pour les notifications push il est ainsi conseillé de faire l'appel ci-dessous afin d'ajouter la donnée du token au moment ou le retour de l'OS s'effectue dans la méthode 'didRegisterForRemoteNotificationsWithDeviceToken' ou 'didRegisterUserNotificationSettings' pour iOS par exemple :

curl -X PATCH -H "Accept: application/json" -H "X-AP-Key: test" -H "X-AP-Deviceuid: 4e5a91431c2d15c3547ffb4011c5b7b9" -H "X-AP-Os: iOS" -F "push={"enabled": true%2C"token": "<g6149d4b ad74ba8f kd78d219 637d847b ed3bc4e7 52fce691 5fe4dd83 be0a4794>"%2C"display_level": "7"}" "https://sdk-testappdev.apnl.ws/v4/sdk/devices/"

Notez que dans cet exemple seuls les valeurs requises pour les headers sont renseignés mais il est fortement conseillé de renseigner l'intégralité des valeurs possibles pour permettre un usage optimal de notre plateforme. 

Les paramètres contenus dans le json du paramètre 'push' sont :

Paramètre Description Obligatoire ? Exemple
enabled Détermine sous la forme d'un booléan si le device accepte les pushs Oui true ou false
token Le token tel qu'il est renvoyé par le système Oui Pour iOS : '<g6149d4b ad74ba8f kd78d219 637d847b ed3bc4e7 52fce691 5fe4dd83 be0a4794>'
display_level Le niveau d'affichage choisi par l'utilisateur Non mais recommandé pour iOS '7'

 

 

 

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0
Vous avez d’autres questions ? Envoyer une demande