> ## 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.

# Guide d'intégration

Cette page présente les outils et les concepts clés pour intégrer les endpoints Retweet.

***

<div id="helpful-tools">
  ## Outils pratiques
</div>

Avant d'aborder quelques concepts clés qui vous aideront à intégrer cet endpoint, nous vous recommandons de vous familiariser avec :

<div id="postman">
  #### Postman
</div>

Postman est un excellent outil que vous pouvez utiliser pour tester un endpoint. Chaque requête Postman inclut tous les paramètres de chemin et de corps de requête afin de vous aider à comprendre rapidement ce qui est à votre disposition. Pour en savoir plus sur nos collections Postman, veuillez consulter notre page ["Utiliser Postman"](/fr/tutorials/postman-getting-started).

<div id="code-samples">
  #### Exemples de code
</div>

Vous souhaitez mettre en place cet endpoint en utilisant votre langage de programmation préféré ? Nous mettons à votre disposition plusieurs exemples de code que vous pouvez utiliser comme point de départ sur notre [page GitHub](https://github.com/xdevplatform/Twitter-API-v2-sample-code).

<div id="third-party-libraries">
  #### Bibliothèques tierces
</div>

Profitez de l'une des [bibliothèques tierces](/fr/x-api/tools-and-libraries/overview) issues de nos communautés pour vous aider à démarrer. Vous pouvez trouver une bibliothèque compatible avec les endpoints v2 en recherchant le tag de version approprié.

<div id="key-concepts">
  ### Concepts clés
</div>

<div id="authentication">
  #### Authentification
</div>

Tous les endpoints de X API v2 exigent que vous authentifiiez vos requêtes à l’aide d’un ensemble d’identifiants, également appelés clés et jetons.

Vous pouvez utiliser OAuth 1.0a User Context ou OAuth 2.0 Jeton Bearer pour authentifier vos requêtes vers l’endpoint de consultation des Retweets.

Les endpoints de gestion des Retweets nécessitent l’utilisation d’OAuth 1.0a User Context, ce qui signifie que vous devez utiliser un ensemble de clés d’API et de jetons d’accès utilisateur pour effectuer une requête avec succès. Les jetons d’accès doivent être associés à l’utilisateur pour le compte duquel vous effectuez la requête. Si vous souhaitez générer un ensemble de jetons d’accès pour un autre utilisateur, celui-ci doit autoriser ou authentifier votre App en utilisant le flux OAuth en 3 étapes.

Veuillez noter qu’OAuth 1.0a peut être difficile à utiliser. Si vous n’êtes pas familiarisé avec cette méthode d’authentification, nous vous recommandons d’utiliser une [bibliothèque](/fr/x-api/tools-and-libraries/overview) pour authentifier correctement vos requêtes.

**Veuillez noter**

Si vous demandez les champs suivants, OAuth 1.0a User Context est requis :

* tweet.fields.non\_public\_metrics
* tweet.fields.promoted\_metrics
* tweet.fields.organic\_metrics
* media.fields.non\_public\_metrics
* media.fields.promoted\_metrics
* media.fields.organic\_metrics

<div id="developer-console-projects-and-developer-apps">
  #### Console de développement, Projets et Apps développeur
</div>

Pour obtenir un ensemble d’identifiants d’authentification compatibles avec les endpoints de X API v2, vous devez [créer un compte développeur](https://developer.x.com/en/portal/petition/essential/basic-info), configurer un [Projet](/fr/resources/fundamentals/developer-apps) dans ce compte, puis créer une [App développeur](/fr/resources/fundamentals/developer-apps) dans ce Projet. Vous pourrez ensuite trouver vos clés et jetons dans votre App développeur.

<div id="rate-limits">
  #### Limites de taux
</div>

Chaque jour, plusieurs milliers de développeurs envoient des requêtes vers l'API X. Pour aider à gérer le volume de ces requêtes, des [limites de taux](/fr/x-api/fundamentals/rate-limits) sont appliquées à chaque endpoint, ce qui limite le nombre de requêtes que vous pouvez effectuer pour le compte de votre App ou d'un utilisateur authentifié.

Les endpoints de gestion des Retweets sont limités à 50 requêtes par tranche de 15 minutes (par utilisateur). En outre, pour l'endpoint POST, vous êtes limité à 300 requêtes par tranche de 3 heures (par utilisateur et par App).

Avec l'endpoint de recherche de Retweets, vous êtes limité à 75 requêtes par tranche de 15 minutes. En outre, seuls les 100 utilisateurs les plus récents ayant Retweeté seront renvoyés par cet endpoint.

<div id="fields-and-expansions">
  #### Champs et expansions
</div>

L’X API v2 permet aux utilisateurs de sélectionner exactement quelles données ils souhaitent récupérer depuis l’API à l’aide d’un ensemble d’outils appelés champs et expansions. Le paramètre expansions vous permet d’« étendre » les objets référencés dans le payload. Par exemple, cet endpoint vous permet de récupérer les [expansions](/fr/x-api/fundamentals/expansions) suivantes :

* attachments.poll\_ids
* attachments.media\_keys
* author\_id, entities.mentions.username
* geo.place\_id
* in\_reply\_to\_user\_id,
* referenced\_tweets.id,
* referenced\_tweets.id.author\_id

Le paramètre fields vous permet de sélectionner exactement quels [champs](/fr/x-api/fundamentals/fields) au sein des différents objets de données vous souhaitez recevoir. Ces endpoints renvoient principalement des objets Publication. Par défaut, l’objet Publication renvoie les champs id et text. Pour recevoir des champs supplémentaires comme tweet.created\_at ou tweet.entities, vous devrez les demander explicitement à l’aide d’un paramètre fields. Parmi les champs importants que vous pouvez envisager d’utiliser dans votre intégration, on trouve nos données de sondage, les métriques, les annotations de Publication et les champs d’identifiant de conversation.

Nous avons ajouté à notre [dictionnaire de données X API v2](/fr/x-api/fundamentals/data-dictionary) un guide expliquant comment [utiliser conjointement les champs et les expansions](/fr/x-api/fundamentals/data-dictionary#how-to-use-fields-and-expansions).

***

<div id="code-examples">
  ### Exemples de code
</div>

<div id="get-users-who-retweeted-a-post">
  #### Récupérer les utilisateurs qui ont retweeté une Publication
</div>

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl "https://api.x.com/2/tweets/1234567890/retweeted_by?user.fields=username,verified" \
    -H "Authorization: Bearer $BEARER_TOKEN"
  ```

  ```python Python SDK theme={null}
  from xdk import Client

  client = Client(bearer_token="YOUR_BEARER_TOKEN")

  # Récupérer les utilisateurs qui ont retweeté une Publication
  response = client.posts.get_retweeted_by(
      "1234567890",
      user_fields=["username", "verified"]
  )
  for user in response.data:
      print(f"{user.username} - Verified: {user.verified}")
  ```

  ```javascript JavaScript SDK theme={null}
  import { Client } from "@xdevplatform/xdk";

  const client = new Client({ bearerToken: "YOUR_BEARER_TOKEN" });

  // Récupérer les utilisateurs qui ont retweeté une Publication
  const response = await client.posts.getRetweetedBy("1234567890", {
    userFields: ["username", "verified"],
  });

  response.data?.forEach((user) => {
    console.log(`${user.username} - Verified: ${user.verified}`);
  });
  ```
</CodeGroup>

<div id="retweet-a-post">
  #### Retweeter une Publication
</div>

<CodeGroup dropdown>
  ```bash cURL theme={null}
  curl -X POST "https://api.x.com/2/users/123/retweets" \
    -H "Authorization: OAuth ..." \
    -H "Content-Type: application/json" \
    -d '{"tweet_id": "1234567890"}'
  ```

  ```python Python SDK theme={null}
  from xdk import Client
  from xdk.oauth1_auth import OAuth1

  oauth1 = OAuth1(
      api_key="YOUR_API_KEY",
      api_secret="YOUR_API_SECRET",
      access_token="YOUR_ACCESS_TOKEN",
      access_token_secret="YOUR_ACCESS_TOKEN_SECRET"
  )

  client = Client(auth=oauth1)

  # Retweeter une Publication
  response = client.posts.retweet(user_id="123", tweet_id="1234567890")
  print(response.data)
  ```

  ```javascript JavaScript SDK theme={null}
  import { Client, OAuth1 } from "@xdevplatform/xdk";

  const oauth1 = new OAuth1({
    apiKey: "YOUR_API_KEY",
    apiSecret: "YOUR_API_SECRET",
    accessToken: "YOUR_ACCESS_TOKEN",
    accessTokenSecret: "YOUR_ACCESS_TOKEN_SECRET",
  });

  const client = new Client({ oauth1 });

  // Retweeter une Publication
  const response = await client.posts.retweet("123", { tweetId: "1234567890" });
  console.log(response.data);
  ```
</CodeGroup>
