> ## Documentation Index
> Fetch the complete documentation index at: https://generaltranslation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Apps

> Créer et configurer des Apps pour accéder à la X API

Les Apps sont des conteneurs pour vos identifiants d’API. Chaque App possède ses propres clés, jetons et paramètres.

***

<div id="app-credentials">
  ## Identifiants de l’App
</div>

Lorsque vous créez une App, vous pouvez générer ces identifiants :

| Identifiant               | Cas d’usage                                                                                            |
| :------------------------ | :----------------------------------------------------------------------------------------------------- |
| **API Key & Secret**      | Authentification avec OAuth 1.0a. Utilisés pour signer les requêtes ou générer des jetons utilisateur. |
| **Access Token & Secret** | Effectuer des requêtes au nom de votre propre compte (OAuth 1.0a).                                     |
| **Client ID & Secret**    | Authentification avec OAuth 2.0. Utilisés pour le flux de code d’autorisation.                         |
| **Bearer Token**          | Authentification pour l’App uniquement sur les endpoints de données publiques.                         |

<Tip>
  Choisissez **OAuth 2.0** pour les nouveaux projets. Il offre des portées granulaires et est requis pour les endpoints en contexte utilisateur de X API v2.
</Tip>

***

<div id="creating-an-app">
  ## Créer une app
</div>

<Steps>
  <Step title="Ouvrir la Console de développement">
    Accédez à [console.x.com](https://console.x.com) et connectez-vous.
  </Step>

  <Step title="Cliquer sur « Create App »">
    Saisissez un nom, une description et un cas d'utilisation pour votre app.
  </Step>

  <Step title="Générer les identifiants">
    Une fois l’app créée, générez les clés et les jetons dont vous avez besoin.
  </Step>

  <Step title="Stocker en toute sécurité">
    Enregistrez immédiatement vos identifiants — ils ne sont affichés qu'une seule fois.
  </Step>
</Steps>

***

<div id="app-permissions-oauth-10a">
  ## Autorisations d’App (OAuth 1.0a)
</div>

Les Apps OAuth 1.0a ont trois niveaux d’autorisations :

<Tabs>
  <Tab title="Lecture seule">
    * Afficher les publications, les comptes et les données publiques
    * Ne peut pas publier, aimer ni modifier quoi que ce soit
    * Ne peut pas accéder aux Messages privés
  </Tab>

  <Tab title="Lecture et écriture">
    * Toutes les autorisations de lecture
    * Publier et supprimer des publications
    * Suivre/ne plus suivre des comptes
    * Aimer et reposter
    * Ne peut pas accéder aux Messages privés
  </Tab>

  <Tab title="Lecture, écriture et MP">
    * Toutes les autorisations de lecture et d’écriture
    * Envoyer et lire des Messages privés
  </Tab>
</Tabs>

<Note>
  La modification des autorisations oblige les utilisateurs à réautoriser votre App afin d’obtenir de nouveaux jetons avec le périmètre mis à jour.
</Note>

***

<div id="oauth-20-app-types">
  ## Types d’App OAuth 2.0
</div>

Lors de la configuration d’OAuth 2.0, sélectionnez votre type d’App :

| Type                              | Client       | Cas d’utilisation                                                           |
| :-------------------------------- | :----------- | :-------------------------------------------------------------------------- |
| **Application web**               | Confidential | Applications côté serveur qui peuvent stocker des secrets en toute sécurité |
| **Application automatisée / bot** | Confidential | Bots et services automatisés exécutés sur des serveurs                      |
| **Application native**            | Public       | Applications mobiles ou de bureau qui ne peuvent pas sécuriser les secrets  |
| **Application monopage**          | Public       | Applications JavaScript basées sur le navigateur                            |

Les **clients confidentiels** reçoivent un Client Secret. Les **clients publics** utilisent uniquement PKCE.

***

<div id="callback-urls">
  ## URL de rappel
</div>

Les URL de rappel (URI de redirection) sont obligatoires pour les flux OAuth. Une fois qu’un utilisateur a autorisé votre App, il est redirigé vers votre URL de rappel avec un code d’autorisation.

<div id="requirements">
  ### Conditions requises
</div>

* Ajoutez les URL de rappel à la liste d’autorisation de votre App dans la Console de développement
* Les URL doivent correspondre exactement (y compris la barre oblique finale)
* Jusqu’à **10 URL de rappel** par App
* Utilisez `https://` en production
* Pour le développement local, utilisez `http://127.0.0.1` (et non `localhost`)

<div id="disallowed-protocols">
  ### Protocoles non autorisés
</div>

Les protocoles suivants ne sont pas autorisés : `javascript`, `data`, `file`, `ftp`, `mailto`, `telnet`, ainsi que d'autres schémas non standard.

<Accordion title="Liste complète des protocoles non autorisés">
  `vbscript`, `javascript`, `vbs`, `data`, `mocha`, `keyword`, `livescript`, `ftp`, `file`, `gopher`, `acrobat`, `callto`, `daap`, `itpc`, `itms`, `firefoxurl`, `hcp`, `ldap`, `mailto`, `mmst`, `mmsu`, `msbd`, `rtsp`, `mso-offdap`, `snews`, `news`, `nntp`, `outlook`, `stssync`, `rlogin`, `telnet`, `tn3270`, `shell`, `sip`
</Accordion>

***

<div id="best-practices">
  ## Bonnes pratiques
</div>

<CardGroup cols={2}>
  <Card title="Utilisez des apps distinctes" icon="layer-group">
    Créez différentes apps pour le développement, la préproduction et la production.
  </Card>

  <Card title="Renouvelez régulièrement les identifiants" icon="arrows-rotate">
    Régénérez régulièrement les clés, notamment si vous soupçonnez une compromission.
  </Card>

  <Card title="Autorisations minimales" icon="shield-check">
    Demandez uniquement les autorisations dont votre app a réellement besoin.
  </Card>

  <Card title="Surveillez l’utilisation" icon="chart-simple">
    Vérifiez régulièrement la Console de développement pour suivre l’utilisation de l’API.
  </Card>
</CardGroup>

***

<div id="automated-account-labels">
  ## Libellés de comptes automatisés
</div>

Si votre App fait fonctionner un compte bot, vous pouvez lui appliquer le libellé « automatisé » :

1. Accédez aux **Paramètres** du compte de votre bot
2. Sélectionnez **Votre compte** → **Automatisation**
3. Associez le compte qui le gère

Cela renforce la confiance des utilisateurs et permet de distinguer votre bot du spam.

***

<div id="troubleshooting">
  ## Dépannage
</div>

<Accordion title="Erreur d’URL de rappel non approuvée">
  Assurez-vous que votre URL de rappel corresponde exactement à celle enregistrée dans la Console de développement, y compris le protocole et tout éventuel slash final. Encodez l’URL en HTTP lorsque vous la transmettez comme paramètre de requête.

  ```json theme={null}
  {
    "errors": [{
      "code": 415,
      "message": "Callback URL not approved for this client application."
    }]
  }
  ```
</Accordion>

<Accordion title="App suspendue">
  Si votre App s’affiche comme suspendue, vérifiez vos e-mails pour voir si vous avez reçu une notification de l’équipe de la plateforme X. Utilisez le [Platform Help Form](https://help.x.com/forms/platform) pour faire appel.
</Accordion>
