# Comprendre les identifiants d'appareil dans Pushwoosh

Il existe deux manières d'identifier un appareil particulier enregistré avec Pushwoosh : un identifiant matériel (HWID) et un token push.

## HWID

Le HWID (ou Hardware ID) est un identifiant clé attribué à l'appareil par le SDK Pushwoosh.

#### HWID Android

Pour les appareils Android, le HWID est un ensemble aléatoire de lettres et de chiffres généré par la première application avec le SDK Pushwoosh installée sur l'appareil. Il est ensuite partagé avec d'autres applications qui contiennent le SDK Pushwoosh afin que toutes ces applications aient le même HWID en conséquence.

Cependant, si un utilisateur supprime toutes les applications avec le SDK Pushwoosh puis en réinstalle certaines, un nouveau HWID sera généré à nouveau.

Exemple de HWID Android : `5dcaed99-e1e0-44dc-bde2-b96188b99e9e`

#### HWID iOS

Pour les appareils iOS, l'IDFV ([Identifier for Vendor](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor)) est utilisé comme HWID de l'appareil. Il ne changera pas tant qu'il y aura au moins une application du même fournisseur installée sur l'appareil.

Exemple de HWID iOS (en majuscules uniquement !) : `CBAF8ED1-17FB-49A3-73BD-DC79B63AEF93`

## Token push

Le token push (ou token d'appareil) est une clé unique pour la combinaison application-appareil émise par les passerelles de notification push d'Apple ou de Google. Il permet aux passerelles et aux fournisseurs de notifications push d'acheminer les messages et de s'assurer que la notification est livrée à la combinaison application-appareil unique à laquelle elle est destinée.

#### Token push iOS

Les tokens push des appareils iOS sont des chaînes de 64 symboles hexadécimaux. Exemple de token push iOS : `03df25c845d460bcdad7802d2vf6fc1dfde97283bf75cc993eb6dca835ea2e2f`

<Aside type="caution">
Assurez-vous que les tokens push iOS que vous utilisez pour cibler des appareils spécifiques dans vos requêtes API sont en **minuscules**.
</Aside>

#### Token push Android

Les tokens push des appareils Android peuvent avoir une longueur différente (généralement inférieure à 255 caractères) et commencent généralement par APA91b… ; cependant, ils peuvent également avoir un préfixe séparé par un deux-points. Exemple de token push Android : `APA91bFoi3lMMre9G3XzR1LrF4ZT82_15MsMdEICogXSLB8-MrdkRuRQFwNI5u8Dh0cI90ABD3BOKnxkEla8cGdisbDHl5cVIkZah5QUhSAxzx4Roa7b4xy9tvx9iNSYw-eXBYYd8k1XKf8Q_Qq1X9-x-U-Y79vdPq`

<Aside type="caution">
L'utilisation de tokens d'appareil bruts pour cibler des appareils spécifiques n'est pas la méthode la plus fiable car les tokens push FCM ont tendance à changer de temps en temps, et il est difficile de savoir à quelle fréquence cela se produit.
</Aside>

## Collecter les logs, le HWID et le token push d'un appareil

### iOS

Tout d'abord, si vous avez accès au code source de votre application, assurez-vous que `Pushwoosh_LOG_LEVEL` dans votre application est réglé sur `VERBOSE`. Pour ce faire, vérifiez la clé de chaîne `Pushwoosh_LOG_LEVEL` dans votre fichier `Info.plist`. Sinon, passez à l'étape suivante. Voici les valeurs possibles pour cette clé :

*   `NONE` - Pas de logs du SDK
*   `ERROR` - Affiche uniquement les erreurs dans la console
*   `WARNING` - Affiche également les avertissements
*   `INFO` - Ajoute des messages d'information
*   `DEBUG` - Ajoute des informations de débogage
*   `VERBOSE` - Tous les logs du SDK

La valeur de clé `VERBOSE` permet au SDK Pushwoosh d'afficher des informations importantes concernant les actions d'enregistrement.

2. Ensuite, connectez l'appareil à votre Mac et lancez Xcode. Allez dans Fenêtre->Appareils et simulateurs.

<img src="/pushwoosh-knowledge-hub-device-identifiers-1.webp" alt="Fenêtre Appareils et simulateurs de Xcode montrant un appareil iOS connecté"/>

3. Dans la fenêtre qui s'ouvre, sélectionnez votre appareil connecté et cliquez sur le triangle vers le haut en bas à gauche pour voir la console de l'appareil :

<img src="/pushwoosh-knowledge-hub-device-identifiers-2.webp" alt="Vue de la console de l'appareil Xcode montrant les logs de l'appareil avec le bouton triangle vers le haut en surbrillance"/>

À partir de la version 9.3 de Xcode, le processus d'obtention du log de la console de l'appareil a légèrement changé. Tout ce que vous avez à faire est d'aller dans votre Launchpad et de lancer l'application « Console ». Sélectionnez votre appareil dans la barre latérale gauche. C'est tout !

<img src="/pushwoosh-knowledge-hub-device-identifiers-3.webp" alt="Application Console de macOS montrant un appareil iOS connecté sélectionné dans la barre latérale gauche avec les logs de l'appareil affichés"/>

4. Ensuite, lancez votre application sur l'appareil et attendez la boîte de dialogue. Autorisez les notifications push pour votre application.

5. Après ces étapes, sélectionnez l'intégralité du log de l'appareil dans la fenêtre de la console et copiez-le dans n'importe quel éditeur de texte.

La requête API Pushwoosh [`/registerDevice`](/fr/developer/api-reference/device-api/) est ce que vous recherchez :

<img src="/pushwoosh-knowledge-hub-device-identifiers-4.webp" alt="Log de la console de l'appareil montrant la requête API registerDevice avec les paramètres hwid et token push visibles"/>

Si l'appareil est enregistré correctement, cette requête doit contenir les paramètres suivants, y compris les valeurs "hwid" et "push token" :

```txt title="Exemple"
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"gateway":"production","jailbroken":0,"app_version":"1.9","application":"D868A-C13C1","sounds":["bubble.wav"],"device_type":1,"userId":"1457691684303547","language":"en","hwid":"FBCA07FE-05EE-4770-B4BA-AB6737BC1A98","package":"com.pushwoosh.pushon","timezone":"25200","push_token":"ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7","os_version":"11.2.2","v":"5.5.1","device_model":"iPhone7,1"}}
| Status: "200 no error"
| Response: {"status_code":200,"status_message":"OK","response":{"iosCategories":[{"categoryId":0,"buttons":[{"id":"33389","label":"test","type":"0","startApplication":0},{"id":"1233","label":"ajhdkj","type":"1","startApplication":0}]}]}}
x
```

La notification avec un token push de votre appareil devrait également être présente :

```
<Notice>: [PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: ae784019d1b8c8e38a1ea06f0800c17a4fa986d6e2d346fc79373e92439ff8f7
```

### Android

1. Si vous avez accès au code source de l'application, assurez-vous que le niveau de log de Pushwoosh est réglé sur `NOISE`. Pour ce faire, ajoutez les métadonnées `com.pushwoosh.log_level` avec la valeur `NOISE` à votre `AndroidManifest.xml`.

2. Ensuite, lancez Android Studio sur votre Mac/PC et allez dans Outils -> Android -> Android Device Monitor.

<img src="/pushwoosh-knowledge-hub-device-identifiers-5.webp" alt="Fenêtre Android Device Monitor d'Android Studio montrant un appareil Android connecté"/>

3. Connectez votre appareil au Mac/PC et lancez l'application. Attendez environ 30 secondes, sélectionnez l'intégralité du log de l'appareil dans la fenêtre de la console et copiez-le dans n'importe quel éditeur de texte.

<img src="/pushwoosh-knowledge-hub-device-identifiers-6.webp" alt="Fenêtre de log de la console d'Android Device Monitor montrant les logs de l'appareil avec la requête registerDevice visible"/>

Veuillez noter que dans les dernières versions d'Android Studio, vous pouvez également utiliser l'outil Logcat pour obtenir le log de la console de l'appareil. Lancez Android Studio et allez dans Affichage -> Fenêtres d'outils -> Logcat :

<img src="/pushwoosh-knowledge-hub-device-identifiers-7.webp" alt="Interface d'Android Studio montrant la fenêtre de l'outil Logcat accessible depuis le menu Affichage"/>

Après cela, vous pouvez localiser le log de l'appareil dans la fenêtre Logcat :

<img src="/pushwoosh-knowledge-hub-device-identifiers-8.webp" alt="Fenêtre Logcat d'Android Studio affichant les logs de l'appareil avec la requête API registerDevice visible"/>

Voici l'exemple ci-dessous, comment la requête API Pushwoosh /registerDevice apparaît dans le log de la console de l'appareil :

<img src="/pushwoosh-knowledge-hub-device-identifiers-9.webp" alt="Log de la console d'un appareil Android montrant la requête API registerDevice avec les paramètres hwid et token push en surbrillance"/>

Trouvez la valeur des paramètres "hwid" et "push token" dans la requête :

```txt title="Exemple"
[RequestManager]
x
| Pushwoosh request:
| Url: https://D868A-C13C1.api.pushwoosh.com/json/1.3/registerDevice
| Payload: {"request":{"application":"D868A-C13C1","hwid":"fc79efabee7649ec","v":"5.5.2","device_type":3,"userId":"fc79efabee7649ec","device_name":"Phone","language":"en","timezone":25200,"android_package":"com.pushwoosh.pushon","jailbroken":0,"device_model":"Sony F8332","os_version":"8.0.0","idfa":"d43ad490-4e6a-48a8-b8b9-f20b76fbf07b","app_version":"1.5","push_token":"dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_","sounds":"[]"}}
| Response: {"status_code":200,"status_message":"OK","response":null}
x
[RequestManager] registerDevice response success
```

Le token push est inclus dans la notification d'enregistrement de l'appareil :

```
I/Pushwoosh(12733): [DeviceRegistrar] Registered for pushes: dwMAeCRabUE:APA91bGSk8SqCSycxfltrWCV9KtXGo48-8qvNKfzHn758PW7lLXSi_Wd7y3gqw-lbexsjLwsaXStpELTJUAQVZ3ybNqAUmfw-we-62rTjpNbvBa4oPYTwaPCr3s4M05xNv8jGau-MeA_
03-30 14:45:10.539: D/PushOn(12733): Registered for push notifications
```

### Chrome (bureau)

1. Allez sur votre site web.

2. Faites un clic droit n'importe où sur la page et appuyez sur « Inspecter ».

<img src="/pushwoosh-knowledge-hub-device-identifiers-10.webp" alt="Outils de développement du navigateur Chrome ouverts avec l'option de menu contextuel Inspecter l'élément visible"/>

3. Dans la fenêtre qui s'ouvre, allez à l'onglet « Application ».

4. Ensuite, dans la barre latérale gauche, choisissez IndexedDB -> Pushwoosh\_SDK\_Store -> keyValue. Ici, trouvez les paramètres HWID et token push.

<img src="/pushwoosh-knowledge-hub-device-identifiers-11.webp" alt="Onglet Application des Outils de développement Chrome montrant IndexedDB avec Pushwoosh SDK Store et keyValue contenant le HWID et le token push"/>

### Chrome (mobile)

1. Connectez votre appareil mobile à l'ordinateur.

2. Allez sur chrome://inspect/#devices sur votre Chrome de bureau.

3. Ouvrez votre site web sur votre Chrome mobile.

4. Une fois le site web ouvert sur votre Chrome mobile, vous verrez la page correspondante dans la page Chrome de bureau. Veuillez jeter un œil à la capture d'écran ci-dessous :

<img src="/pushwoosh-knowledge-hub-device-identifiers-12.webp" alt="Page de débogage à distance de Chrome montrant un appareil mobile connecté avec le bouton Inspecter en surbrillance"/>

5. Appuyez sur le bouton « Inspecter » mis en évidence dans la capture d'écran ci-dessus.

6. La fenêtre suivante apparaîtra sur votre Chrome de bureau. Là, dans l'onglet « Application », ouvrez IndexedDB -> PUSHWOOSH\_SDK\_STORE. Après cela, cliquez sur keyValue et ouvrez la section API\_PARAMS :

<img src="/pushwoosh-knowledge-hub-device-identifiers-13.webp" alt="Onglet Application des Outils de développement Chrome montrant IndexedDB PUSHWOOSH SDK STORE avec la section API_PARAMS contenant hwid et token push"/>

Dans la section API\_PARAMS, vous trouverez les paramètres "hwid" et "push token" avec leurs valeurs.

### Safari

1. Allez sur votre site web.
2. Faites un clic droit n'importe où sur la page et sélectionnez Inspecter l'élément.
3. Allez à l'onglet Stockage -> Bases de données indexées -> PUSHWOOSH\_SDK\_STORE -> keyValue.
4. Développez les API\_PARAMS et trouvez les valeurs "hwid" et "push token" ici.

<img src="/pushwoosh-knowledge-hub-device-identifiers-14.webp" alt="Onglet Stockage des Outils de développement Safari montrant les Bases de données indexées avec PUSHWOOSH SDK STORE keyValue contenant API_PARAMS avec hwid et token push"/>