Passer au contenu principal

Introduction

Les endpoints de la X API v2 fournissent les metadata d’édition de Post. La fonctionnalité Edit Posts a été introduite pour des tests auprès des employés de X le 1er septembre 2022. À partir de cette date, les Posts éligibles sont modifiables pendant 30 minutes et jusqu’à 5 fois. Tous les objets pour les Posts créés depuis le 29 septembre 2022 incluent des metadata d’édition de Post, même si le Post n’a jamais été modifié. Chaque fois qu’un Post est modifié, un nouvel ID de Post est créé. L’historique des modifications d’un Post peut être décrit en chaînant ces ID, en commençant par l’ID d’origine. De plus, si un Post de la chaîne d’édition est supprimé, tous les Posts de cette chaîne le sont également. Avec la X API v2, un développeur peut déterminer :
  • Si un Post était éligible à l’édition au moment de sa création. Certains Posts, comme ceux avec des sondages ou les Posts programmés, ne peuvent pas être modifiés.
  • Les Posts sont modifiables pendant 30 minutes et peuvent être modifiés jusqu’à 5 fois. Pour les Posts modifiables, vous pouvez voir s’il reste du temps d’édition et combien de modifications supplémentaires sont possibles.
  • Si vous consultez une version modifiée d’un Post (dans la plupart des cas, l’API renvoie la version la plus récente d’un Post, sauf si une version antérieure spécifique est demandée via l’ID de Post).
  • L’historique complet des modifications du Post.
  • L’engagement attribué à chaque version du Post.
Il y a trois composants dans l’historique des modifications d’un Post :
  1. Par défaut, le payload du Post contient un tableau d’ID de Post qui font partie de l’historique des modifications d’un Post. Cette information est fournie par edit_history_tweet_ids, qui est un champ par défaut du payload du Post. Ce tableau contient au moins un ID, celui du Post original non modifié. Lorsqu’il n’y a qu’un seul ID, cela signifie que le Post n’a pas d’historique de modification. 
  2. Vous pouvez obtenir des informations telles que le fait qu’un Post était modifiable au moment de sa création, le temps restant, le cas échéant, pour qu’un Post soit modifié, et combien de modifications restent en spécifiant edit_controls dans votre paramètre tweet.fields.
  3. Enfin, vous pouvez obtenir les Objets Post pour chaque Post dans l’historique des modifications d’un Post, en spécifiant edit_history_tweet_ids à l’aide du paramètre expansion.
La plupart des Posts sont éligibles à l’édition. Cependant, les types de Posts suivants ne le sont pas : 
  • Post promu
  • Post avec sondage
  • Post qui est une réponse dans un fil dont vous n’êtes pas l’auteur
  • Post qui est un Retweet (notez que les Quote Tweets sont éligibles à l’édition)
  • Post nullcast
  • Post de Communauté
  • Post Superfollow
  • Post collaboratif
Exemples
Les exemples ci-dessous montrent comment un développeur peut demander les metadata d’édition de Post à l’aide de la X API v2.  Remarque : Les exemples ci-dessous utilisent l’endpoint User Post Timeline, mais vous pouvez demander ces metadata en utilisant les mêmes paramètres (avec fields et expansions) pour tous les endpoints qui renvoient des Posts (par exemple, Posts lookup, search, filtered stream, etc.)

Comportement par défaut

Par défaut, pour une requête API vers n’importe quel endpoint renvoyant des Objets Post dans la X API v2, vous obtenez :
  • L’ID de Post
  • Le texte du Post
  • Un tableau d’ID de Post faisant partie de l’historique des modifications d’un Post. S’il n’y a qu’un seul ID fourni, cela signifie que le Post n’a pas été modifié.
Requête : curl --request GET 'https://api.x.com/2/users/:id/tweets' --header 'Authorization: Bearer $BEARER_TOKEN' Exemple de réponse :
  "data": [
    {
      "id": "1514991667853602823",
      "text": "nous avons un bouton d’édition"
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"]
    }
  ]
}

Obtenir des données supplémentaires avec edit_controls

Si vous souhaitez des métadonnées supplémentaires sur les Posts modifiés — par exemple, savoir si un Post était éligible à la modification lors de sa création et combien de temps il reste pendant lequel il peut encore être modifié — vous pouvez demander ces informations en utilisant le paramètre tweet.fields et en le définissant sur edit_control. Requête : curl --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control' --header 'Authorization: Bearer $BEARER_TOKEN' Exemple de réponse :
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "nous avons un bouton pour modifier"
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ]
}

Récupérer les Objets Post pour tous les Posts de l’historique des modifications d’un Post

Les exemples ci‑dessus fournissent un tableau d’ID de Post présents dans l’historique des modifications d’un Post. Si vous souhaitez obtenir l’Objet Post correspondant à chacun de ces ID de Post, vous pouvez utiliser le paramètre d’expansion et le définir sur edit_history_tweet_ids. Les Objets Post qui composent l’historique des modifications seront fournis dans l’objet « includes ».  Requête :
      curl --location --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control&expansions=edit_history_tweet_ids' --header 'Authorization: Bearer $BEARER_TOKEN'`
Exemple de réponse :
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "nous avons un bouton Modifier",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ],
  "includes": {
    "tweets": [
      {
        "id": "1514991667853602822",
        "text": "nous avons besoin d’un bouton Modifier",
        "edit_history_tweet_ids": [
          "1514991667853602822",
          "1514991667853602823"
        ],
        "edit_controls": {
          "is_edit_eligible": true,
          "editable_until": "2022-04-21 09:35:20.311",
          "edits_remaining": 4
        }
      }
    ]
  }
}
I