Skip to main content

v1.1 estándar en comparación con X API v2

Si has estado trabajando con los endpoints GET statuses/show y GET statuses/lookup de la v1.1 estándar, esta guía te ayudará a entender las similitudes y diferencias entre esos endpoints estándar y los endpoints de consulta de Publicaciones de X API v2. También puede interesarte nuestra herramienta visual de migración de formato de datos, que te ayuda a ver rápidamente las diferencias entre el formato de datos de X API v1.1 y el formato de X API v2.
  • Similitudes
    • Contexto de usuario OAuth 1.0a
    • Límites de Publicaciones por solicitud
    • Compatibilidad con el historial de edición y metadatos de las Publicaciones
  • Diferencias
    • URLs de los endpoints
    • Requisitos de App y Project
    • Formato de datos de la respuesta
    • Parámetros de la solicitud

Semejanzas

Método de autenticación con contexto de usuario de OAuth 1.0a

El endpoint estándar admite Contexto de usuario de OAuth 1.0a, mientras que el nuevo endpoint de consulta de Publicaciones de X API v2 admite tanto el contexto de usuario de OAuth 1.0a como OAuth 2.0 App-Only. Por lo tanto, si antes usabas uno de los endpoints estándar de consulta de Publicaciones de v1.1, puedes seguir utilizando el mismo método de autenticación si migras a la versión de X API v2. La autenticación App-Only probablemente sea la forma más sencilla de empezar. Para aprender a generar un App Access Token, consulta esta guía de OAuth 2.0 App-Only.

Límite de Publicaciones por solicitud

El endpoint de v1.1 GET statuses/lookup permite especificar hasta 100 Publicaciones por solicitud. Esto también se aplica al endpoint GET /tweets. Para especificar un total de 100 Publicaciones, usa el parámetro ids como parámetro de consulta con una lista separada por comas de ID de Publicaciones. Compatibilidad con el historial de edición y metadatos de Publicaciones Ambas versiones proporcionan metadatos que describen cualquier historial de edición. Consulta las Referencias de la API de consulta de Publicaciones y la página de conceptos básicos sobre edición de Publicaciones para más detalles.

Diferencias

URLs de los endpoints

  • Endpoints estándar de la v1.1:
    • https://api.x.com/1.1/statuses/show
    • https://api.x.com/1.1/statuses/lookup
  • Endpoint de X API v2:
    • https://api.x.com/2/tweets
    • https://api.x.com/2/tweets/:id

Requisitos de App y Project

Los endpoints de X API v2 requieren credenciales de una developer App asociada a un Project para la autenticación. Los endpoints de X API v1.1 pueden usar credenciales de Apps o de Apps asociadas a una App.

Formato de datos de la respuesta

Una diferencia importante entre las versiones de endpoints estándar v1.1 y X API v2 es cómo se seleccionan los campos en el payload. En los endpoints estándar, muchos campos de la respuesta se incluyen de forma predeterminada, con opciones para usar parámetros que especifiquen campos adicionales. X API v2, sin embargo, solo entrega de forma predeterminada los campos id y text de la Publicación. Los campos y objetos adicionales requieren el uso de los parámetros fields y expansions. Los campos expandidos se devuelven en un objeto includes dentro de la respuesta, que se puede relacionar con el objeto de la Publicación principal mediante la coincidencia de ids. Para obtener más información sobre el uso de fields y expansions, consulta la guía sobre cómo usar fields y expansions. Una guía de migración de formato de datos también asigna los campos estándar de v1.1 a los campos más recientes de v2. Además, X API v2 introduce nuevos diseños JSON para objetos, incluidos los objetos de Publicación y de user:
  • Los endpoints estándar devuelven objetos de Publicación en un array statuses, mientras que X API v2 usa un array data.
  • Los Tweets retuiteados y citados en X API v2 sustituyen la terminología “statuses”.
  • Nueva terminología como like reemplaza términos como favorites y favourites.
  • Los atributos sin valores (por ejemplo, null) no se incluyen en los payloads de X API v2.
El objeto de Publicación en X API v2 incluye nuevos campos como:
  • conversation_id
  • Dos nuevos campos de annotations (context y entities)
  • Nuevos campos de metrics
  • Campo reply_setting que indica quién puede responder a una Publicación determinada

Parámetros de la solicitud

Los siguientes parámetros de solicitud estándar de v1.1 tienen equivalentes en X API v2:
EstándarX API v2
idids
Algunos parámetros estándar de v1.1 no están admitidos en X API v2:
EstándarComentario
tweet_modeReemplazado por la funcionalidad de campos y expansions.
trim_userReemplazado por campos y expansions. Usa la expansión author_id y user.fields para los datos de usuario.
include_my_retweetProporciona el ID de la Publicación de origen para Publicaciones retuiteadas por el usuario autenticado.
include_entitiesUsa campos y expansions para controlar las entidades en la carga útil.
include_ext_alt_textAgrega el campo ext_alt_text en la entidad de medios si hay texto alternativo presente.
include_card_uriAgrega card_uri cuando se adjunta una tarjeta de anuncios.
mapDevuelve el ID de la Publicación y el mensaje de error para Publicaciones no disponibles en X API v2, en lugar de campos establecidos en null en v1.1.

Ejemplos de código

Los siguientes ejemplos muestran endpoints estándar de v1.1 y sus equivalentes en v2. Reemplaza las credenciales por tus tokens reales. Para los endpoints de v2, el token debe pertenecer a una developer App dentro de un Project. Los cuerpos de respuesta de v1.1 diferirán de los de v2. Con v2, puedes solicitar distintos campos con los parámetros fields y expansions. Búsqueda de múltiples Publicaciones: v1.1 GET statuses/lookup → v2 GET /tweets
cURL (v1.1)
curl --request GET \
  --url 'https://api.x.com/1.1/statuses/lookup.json?id=1460323737035677698%2C1460323743339741184' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'
Búsqueda de una sola Publicación: v1.1 GET statuses/show/:id → v2 GET /tweets/:id
cURL (v1.1)
curl --request GET \
  --url 'https://api.x.com/1.1/statuses/show.json?id=1460323737035677698' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'