Saltar al contenido principal

Introducción

Los endpoints de X API v2 proporcionan metadatos de edición de Posts. La función Edit Posts se introdujo inicialmente para pruebas entre empleados de X el 1 de septiembre de 2022. A partir de esa fecha, los Posts elegibles se pueden editar durante 30 minutos y hasta 5 veces. Todos los objetos de Posts creados desde el 29 de septiembre de 2022 incluyen metadatos de edición del Post, incluso si el Post nunca se editó. Cada vez que se edita un Post, se crea un nuevo ID de Post. El historial de ediciones de un Post puede describirse encadenando estos ID, comenzando por el ID original. Además, si se elimina cualquier Post en la cadena de ediciones, todos los Posts de esa cadena también se eliminan. Usando X API v2, un desarrollador puede determinar:
  • Si un Post era elegible para edición en el momento de su creación. Algunos Posts, como los que tienen encuestas o los programados, no se pueden editar.
  • Los Posts son editables durante 30 minutos y se pueden editar hasta 5 veces. Para los Posts editables puedes ver si queda tiempo para editar y cuántas ediciones más son posibles.
  • Si estás viendo una versión editada de un Post (en la mayoría de los casos, la API devolverá la versión más reciente de un Post, a menos que se solicite una versión anterior específica por ID de Post).
  • Todo el historial de ediciones del Post.
  • La interacción atribuida a cada versión del Post.
Hay tres componentes en el historial de ediciones de un Post:
  1. De forma predeterminada, el payload del Post contendrá un arreglo de ID de Post que forman parte del historial de ediciones de un Post. Esta información se especifica mediante edit_history_tweet_ids, que es un campo predeterminado en el payload del Post. Este arreglo contendrá al menos un ID: el ID del Post original sin editar. Cuando solo hay un ID, significa que el Post no tiene historial de ediciones.
  2. Puedes obtener información como si un Post era editable en el momento en que se creó, cuánto tiempo, si lo hay, queda para que se edite un Post y cuántas ediciones quedan, especificando edit_controls en tu parámetro tweet.fields.
  3. Finalmente, puedes obtener los objetos de Post para cada Post en el historial de ediciones, especificando edit_history_tweet_ids usando el parámetro expansions
La mayoría de los Posts son elegibles para edición. Sin embargo, los siguientes tipos de Posts no lo son:
  • El Post es promocionado
  • El Post tiene una encuesta
  • El Post es una respuesta en un hilo que no es propio
  • El Post es un Retweet (ten en cuenta que los Quote Tweets son elegibles para edición)
  • El Post es nullcast
  • Post de Comunidad
  • Post de Superfollow
  • Post colaborativo
Ejemplos
Los ejemplos a continuación muestran cómo un desarrollador puede solicitar metadatos de edición de Posts usando X API v2. Nota: Los ejemplos a continuación utilizan el endpoint User Post Timeline, pero puedes solicitar estos metadatos usando los mismos parámetros (con fields y expansions) para todos los endpoints que devuelven Posts (p. ej., lookup de Posts, búsqueda, stream filtrado, etc.)

Comportamiento predeterminado

De forma predeterminada, en una solicitud a cualquier endpoint que devuelve Objetos de Post en la X API v2, obtendrás:
  • El ID de Post
  • El texto del Post
  • Una matriz de IDs de Post que forman parte del historial de ediciones de un Post. Si solo se proporciona un ID, significa que el Post no ha sido editado.
Solicitud: curl --request GET 'https://api.x.com/2/users/:id/tweets' --header 'Authorization: Bearer $BEARER_TOKEN' Respuesta de ejemplo:
  "data": [
    {
      "id": "1514991667853602823",
      "text": "tenemos un botón para editar"
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"]
    }
  ]
}

Obtener datos adicionales con edit_controls

Si quieres metadatos adicionales sobre Posts editados, como si un Post era elegible para edición cuando se creó y cuánto tiempo queda para que un Post siga siendo editable, puedes solicitar esta información usando el parámetro tweet.fields y estableciéndolo en edit_control. Solicitud: curl --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control' --header 'Authorization: Bearer $BEARER_TOKEN' Respuesta de muestra:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "tenemos un botón para editar",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ]
}

Obtención de Objetos de Post para todos los Posts del historial de edición de un Post

Los ejemplos anteriores proporcionan un arreglo de IDs de Post en el historial de edición de un Post. Si deseas el Objeto de Post para cada uno de estos IDs de Post, puedes usar el parámetro de expansión y establecerlo en edit_history_tweet_ids. Los Objetos de Post que conforman el historial de edición se proporcionarán en el objeto “includes”.  Solicitud:
      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'`
Respuesta de muestra:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "tenemos un botón para editar",
      "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": "necesitamos un botón para editar",
        "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