# Jeton d'accès API

Le jeton d'accès API est un identifiant unique attribué à un projet particulier ou à plusieurs projets de votre compte. Il authentifie votre compte pour la gestion de vos projets via l'API, y compris les modifications de compte, l'envoi de messages, la modification de projets, etc.

## Types de jetons d'accès API

Pushwoosh propose deux types de jetons d'accès API différents : **Serveur** et **Appareil**.

Chaque type de jeton n'est valide que pour sa portée API spécifique. Une erreur d'authentification se produira si le mauvais jeton est utilisé.

#### Jeton d'API Serveur

Le jeton d'API Serveur est utilisé avec toutes les méthodes de l'API, à l'exception de celles de l'API Appareil. Il doit être inclus dans le corps de la requête dans le champ `auth`.

#### Jeton d'API Appareil

Le jeton d'API Appareil est utilisé exclusivement avec les méthodes de l'API Appareil. Il doit être inclus dans les en-têtes de la requête HTTP en utilisant l'en-tête `Authorization`.
Voici un exemple du format d'en-tête correct :

```
Authorization: Token <device_api_token>
```
Remplacez `<device_api_token>` par la valeur réelle de votre jeton d'API Appareil.

<Aside type="caution" title="Méthodes nécessitant un jeton d'API Appareil">

Les méthodes API suivantes **nécessitent un jeton d'API Appareil** pour l'autorisation :
- [`registerDevice`](/fr/developer/api-reference/device-api/#registerdevice)
- [`unregisterDevice`](/fr/developer/api-reference/device-api/#unregisterdevice)
- [`deleteDevice`](/fr/developer/api-reference/device-api/#deletedevice)
- [`setTags`](/fr/developer/api-reference/device-api/#settags)
- [`getTags`](/fr/developer/api-reference/device-api/#gettags)
- [`setBadge`](/fr/developer/api-reference/device-api/#setbadge)
- [`applicationOpen`](/fr/developer/api-reference/device-api/#applicationopen)
- [`pushStat`](/fr/developer/api-reference/device-api/#pushstat)
- [`messageDeliveryEvent`](/fr/developer/api-reference/device-api/#messagedeliveryevent)
- [`registerUser`](/fr/developer/api-reference/user-centric-api/#registeruser)
- [`deleteUser`](/fr/developer/api-reference/user-centric-api/#deleteuser)
- [`postEvent`](/fr/developer/api-reference/user-centric-api/#postevent)
- [`registerEmail`](/fr/developer/api-reference/email-api/#registeremail)
- [`deleteEmail`](/fr/developer/api-reference/email-api/#deleteemail)
- [`setEmailTags`](/fr/developer/api-reference/email-api/#setemailtags)
- [`registerEmailUser`](/fr/developer/api-reference/email-api/#registeremailuser)
- [`getInboxMessages`](/fr/developer/api-reference/message-inbox/#getinboxmessages)
- [`inboxStatus`](/fr/developer/api-reference/message-inbox/#inboxstatus)
</Aside>

## Créer et gérer les jetons d'accès API

Vous pouvez afficher, créer et gérer vos jetons d'accès API dans la section **API Access** du Panneau de Contrôle de Pushwoosh. Pour y accéder, allez dans **Settings → API Access**.
![Jeton de l'application de démonstration Pushwoosh](/api-reference-api-access-token-1.webp)

Par défaut, chaque compte inclut un jeton appelé **Pushwoosh Demo App**, qui est configuré comme un jeton serveur.

### Créer un nouveau jeton d'accès API

Pour créer un nouveau jeton d'accès API :

1. Allez dans la section **API Access** du Panneau de Contrôle.

2. Cliquez sur **Generate New Token**.

3. Dans la fenêtre qui apparaît, choisissez le type de jeton :

   * [**Serveur**](#server-api-token) utilisé pour la plupart des méthodes de l'API (à l'exclusion des méthodes de l'API Appareil).

   * [**Appareil**](#device-api-token) utilisé uniquement pour les méthodes de l'API Appareil.

4. Saisissez un nom pour le jeton.

5. Cliquez sur **Generate** pour créer le jeton.

![Générer un nouveau jeton](/api-reference-api-access-token-4.webp)

> **Important :** Assurez-vous de donner au jeton l'accès à la bonne application dans votre Panneau de Contrôle Pushwoosh. [En savoir plus](#edit-token)

Le nouveau jeton apparaîtra dans la liste d'Accès API. À partir de là, vous pouvez copier sa valeur pour l'utiliser dans les requêtes API ou gérer ses autorisations d'accès selon vos besoins.

### Gérer un jeton

Pour gérer un jeton d'API existant, cliquez sur le **menu à trois points (⋮)** à côté de l'entrée du jeton dans la section **API Access**.

![Gérer un jeton](/api-reference-api-access-token-2.webp)

Les options suivantes sont disponibles :

#### Accorder l'accès à tous les projets

Donne au jeton l'accès à tous les projets de votre compte. Cela lui permet d'utiliser pleinement l'API sur tous les projets.

<Aside type="tip">
N'accordez un accès complet qu'aux jetons qui en ont besoin. Cela aide à sécuriser vos données et à contrôler les accès.
</Aside>

#### Révoquer l'accès à tous les projets

Supprime l'accès du jeton à tous les projets de votre compte. Le jeton ne pourra plus utiliser l'API jusqu'à ce que l'accès soit à nouveau accordé.

#### Modifier le jeton

Ouvre l'écran **Edit API Token Permissions**, où vous pouvez :

* Changer le nom du jeton

* Copier la valeur du jeton

* Choisir les projets auxquels le jeton peut accéder en les sélectionnant ou désélectionnant dans la liste

![Gérer un jeton](/api-reference-api-access-token-3.webp)

Une fois que vous avez terminé vos modifications, cliquez sur **Save** pour les appliquer.

<Aside type="tip">
N'accordez aux jetons que l'accès aux projets dont ils ont besoin. Cela aide à protéger votre compte et à contrôler ce que chaque jeton peut faire.
</Aside>

#### Supprimer le jeton

Supprime définitivement le jeton de votre compte.

<Aside type="caution">

Cette action est irréversible. Une fois supprimé, le jeton ne peut pas être récupéré. Assurez-vous que le jeton n'est plus utilisé avant de le supprimer.

</Aside>

## Autoriser les requêtes API

Pour autoriser les requêtes API, utilisez le type de jeton d'accès API correct en fonction du type de méthode API que vous appelez :

#### Pour les méthodes de l'API Serveur

Incluez le jeton dans le champ "auth" du corps de la requête :

Exemple :

```json
{
  "request": {
    "application": "XXXXX-XXXXX",
    "auth": "yxoPUlwqm…………pIyEX4H", // collez votre jeton serveur ici
    "notifications": [{
      "send_date": "now",
      "content": "Hello world"
    }]
  }
}
```

#### Pour les méthodes de l'API Appareil

Utilisez le **jeton Appareil**. Incluez-le dans l'en-tête de la requête HTTP en utilisant le format suivant :

```
Authorization: Token <device_api_token>
```

Remplacez `<device_api_token>` par la valeur réelle de votre jeton.
<Aside type="caution">
Assurez-vous que le type de jeton correspond à la méthode API que vous utilisez. Si le jeton ne correspond pas au type requis, la requête renverra une erreur d'authentification.
</Aside>