Saltar al contenido principal

Introducción

Los endpoints de X API v2 proporcionan metadatos sobre ediciones de Posts. La función Edit Posts se presentó por primera vez para pruebas entre empleados de X el 1 de septiembre de 2022. A partir de esa fecha, los Posts elegibles pueden editarse 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 de 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 IDs, comenzando con el ID original. Además, si cualquier Post en la cadena de ediciones se elimina, todos los Posts de esa cadena también se eliminan. Usando la X API v2, un desarrollador puede averiguar:
  • Si un Post era elegible para edición en el momento de su creación. Algunos Posts, como aquellos con encuestas o Posts programados, no pueden editarse.
  • Los Posts se pueden editar durante 30 minutos y 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á una matriz de IDs 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. Esta matriz contendrá al menos un ID, el ID del Post original y 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 editar 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 de un Post 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 de otro usuario (non-self-thread)
  • El Post es un Retweet (ten en cuenta que los Quote Tweets son elegibles para edición)
  • El Post es nullcast
  • Community Post
  • Superfollow Post
  • Collaborative Post
Ejemplos
Los ejemplos a continuación muestran cómo un desarrollador puede solicitar metadatos de Posts editados usando X API v2. Nota: Los ejemplos a continuación usan 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, flujo filtrado, etc.)

Comportamiento predeterminado

De forma predeterminada, al realizar una solicitud de API a cualquier endpoint que devuelve objetos Post en la X API v2, obtendrás:
  • El ID del Post
  • El texto del Post
  • Un arreglo 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 se ha 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 de un Post editado, como si un Post era elegible para ser editado 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
      }
    }
  ]
}

Obtener objetos Post para todas las publicaciones en el historial de edición de una publicación

Los ejemplos anteriores proporcionan una matriz de IDs de Post en el historial de edición de una publicación. Si quieres el objeto 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 Post que componen 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'`
Ejemplo de respuesta:
  {
  "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
        }
      }
    ]
  }
}