Passer au contenu principal
Avec les expansions, les développeurs peuvent développer les objets référencés dans la charge utile. Les objets disponibles pour expansion sont référencés par id. Par exemple, les champs referenced_tweets.id et author_id renvoyés dans la charge utile Posts lookup peuvent être développés en objets complets. Si vous souhaitez demander des fields liés à l’utilisateur qui a publié ce Post, ou aux médias, au sondage ou au lieu inclus dans ce Post, vous devrez transmettre le paramètre de requête d’expansion correspondant dans votre requête afin de recevoir ces data dans votre réponse. Actuellement, les endpoints v2 qui renvoient des Posts, des utilisateurs, des Lists, des Spaces et des objets d’événements de messages directs prennent tous en charge les expansions (voir les exemples ci-dessous). Lorsque vous incluez une expansion dans votre requête, nous ajouterons les fields par défaut de l’objet développé dans la même réponse. Cela permet de retourner des data supplémentaires dans la même réponse sans avoir besoin de requêtes distinctes. Si vous souhaitez demander des fields supplémentaires liés à l’objet développé, vous pouvez inclure le paramètre de field associé à cet objet, ainsi qu’une liste de fields séparés par des virgules que vous souhaitez recevoir dans votre réponse. Veuillez noter que les fields ne sont pas toujours renvoyés dans le même ordre que celui dans lequel ils ont été demandés dans la query. La charge utile du Post ci-dessous contient des id de référence pour des objets complémentaires sur lesquels nous pouvons effectuer une expansion, notamment l’author_id de la personne qui a publié le Post, l’id d’un Post référencé et une media_key pour une pièce jointe média.
{
    "data": {
        "attachments": {
            "media_keys": ["16_1211797899316740096"]
        },
        "author_id": "2244994945",
        "id": "1212092628029698048",
        "referenced_tweets": [
            {
                "type": "replied_to",
                "id": "1212092627178287104"
            }
        ],
        "text": "Nous pensons que la meilleure version future de notre API naîtra en la construisant AVEC VOUS. À une nouvelle année exceptionnelle avec toutes celles et ceux qui développent sur la plateforme X. Nous avons hâte de continuer à travailler avec vous dans la nouvelle année. https://t.co/yvxdK6aOo2"
    }
}

Extensions disponibles pour les charges utiles de Post

ExtensionDescription
author_idRenvoie un objet utilisateur représentant l’auteur du Post
referenced_tweets.idRenvoie un Objet Post auquel ce Post fait référence (Retweet, Tweet cité ou réponse)
edit_history_tweet_idsRenvoie des Objets Post faisant partie de l’historique des modifications d’un Post
in_reply_to_user_idRenvoie un objet utilisateur représentant l’auteur du Post auquel le Post demandé répond
attachments.media_keysRenvoie un objet média représentant les images, vidéos et GIF inclus dans le Post
attachments.poll_idsRenvoie un objet sondage contenant les metadata du sondage inclus dans le Post
geo.place_idRenvoie un objet lieu contenant les metadata de l’emplacement tagué dans le Post
entities.mentions.usernameRenvoie un objet utilisateur pour l’utilisateur mentionné dans le Post
referenced_tweets.id.author_idRenvoie un objet utilisateur pour l’auteur du Post référencé

Extensions disponibles pour les charges utiles utilisateur

ExtensionDescription
pinned_tweet_idRenvoie un Objet Post représentant le Post épinglé en haut du profil de l’utilisateur

Expansions disponibles pour les payloads d’événements de messages directs

ExpansionDescription
attachments.media_keysRenvoie un objet Media joint à un message direct
referenced_tweets.idRenvoie un Objet Post référencé dans un message direct
sender_idRenvoie un objet utilisateur représentant l’auteur d’un message direct et la personne ayant invité un participant à rejoindre une conversation
participant_idsRenvoie un objet utilisateur représentant un participant ayant rejoint ou quitté une conversation

expansions disponibles pour les charges utiles Spaces

ExpansionDescription
invited_user_idsRenvoie des objets utilisateur représentant les comptes invités
speaker_idsRenvoie des objets utilisateur représentant les comptes qui sont intervenus durant un Space
creator_idRenvoie un objet utilisateur représentant le compte qui a créé le Space
host_idsRenvoie des objets utilisateur représentant les comptes définis comme hôtes
topics_idsRenvoie les descriptions des sujets définies par le créateur

Extensions disponibles pour les payloads de List

ExtensionDescription
owner_idRenvoie un objet utilisateur représentant le compte qui a créé et gère la List

Développer l’objet Media

Dans la requête suivante, nous demandons l’expansion geo.place_id afin de l’inclure en plus des champs Post par défaut : Exemple de requête
{`curl 'https://api.x.com/2/tweets/:ID?expansions=geo.place_id' --header 'Authorization: Bearer $ACCESS_TOKEN'`}
Exemple de réponse
{`{
  "data": {
      "geo": {
          "place_id": "01a9a39529b27f36"
      },
      "id": "ID",
      "text": "Test"
  },
  "includes": {
      "places": [
          {
              "full_name": "Manhattan, NY"
              "id": "01a9a39529b27f36"
          }
      ]
  }
}`}

Extension de l’objet Poll

Dans la requête suivante, nous demandons l’extension attachments.poll_ids afin de l’inclure en plus des Post fields par défaut : Exemple de requête Exemple de réponse
{`{
  "data": {
      "attachments": {
          "poll_ids": ["1199786642468413448"]
      },
      "id": "1199786642791452673",
      "text": "C#"
  },
  "includes": {
      "polls": [
          {
              "id": "1199786642468413448",
              "options": [
                  {
                      "position": 1,
                      "label": "« C Sharp »"
                      "votes": 795
                  },
                  {
                      "position": 2,
                      "label": "« C Hashtag »"
                      "votes": 156
                  }
              ]
          }
      ]
  }
}`}

Développer l’objet Place

Dans la requête suivante, nous demandons l’extension geo.place_id afin de l’inclure aux côtés des champs Post par défaut : Exemple de requête Exemple de réponse
{`{
  "data": {
      "geo": {
          "place_id": "01a9a39529b27f36"
      },
      "id": "ID",
      "text": "Test"
  },
  "includes": {
      "places": [
          {
              "full_name": "Manhattan, NY",
              "id": "01a9a39529b27f36"
          }
      ]
  }
}`}
I