Consulte nuestras guías comparativas:
X API: Diccionario de datos de Enterprise
Introducción
Enterprise
Los Posts son el componente atómico básico de todo en X. Todas las X API que devuelven Posts proporcionan esos datos codificados en JavaScript Object Notation (JSON). JSON se basa en pares clave-valor, con atributos con nombre y valores asociados. Los Objetos de Post recuperados de la API incluyen la “actualización de estado” de un usuario de X, pero los Retweets, las respuestas y los Tweets con cita también son Objetos de Post. Si un Post está relacionado con otro Post, como un Retweet, una respuesta o un Tweet con cita, cada uno se identificará o se incrustará en el Objeto de Post. Incluso el Post más simple en el formato de datos nativo de X tendrá objetos JSON anidados para representar otros atributos de un Post, como el autor, los usuarios mencionados, la ubicación etiquetada, los hashtags, los símbolos de cashtag, el contenido multimedia o los enlaces URL. Al trabajar con los datos de X, este es un concepto importante que entender. El formato de los datos del Post que recibirá de la X API depende del tipo de Post recibido, de la X API que esté utilizando y de la configuración de formato.
Los endpoints de Enterprise que devuelven Objetos de Post se han actualizado para proporcionar los metadatos necesarios para comprender el historial de edición del Post. Obtenga más información sobre estos metadatos en la página “Editar Posts”.
En el formato nativo de X, la carga útil JSON incluirá atributos de ‘nivel raíz’ y objetos JSON anidados (que se representan aquí con la notación
{}
):
Formatos de datos disponibles
Tenga en cuenta: se recomienda encarecidamente usar el formato Enriched Native para las API de datos de Enterprise.Las API de datos de Enterprise entregan datos en dos formatos. El formato de Enterprise más cercano al formato nativo de Standard v1.1 es Enriched Native. El formato de datos de Enterprise heredado es Activity Streams, implementado originalmente por Gnip y utilizado como un formato normalizado en X y otros proveedores de datos de redes sociales en ese momento. Aunque este formato sigue disponible, X solo ha invertido en nuevas funciones y desarrollos en el formato Enriched Native desde 2017. El formato Enriched Native es exactamente lo que sugiere el nombre: incluye objetos nativos de X, así como enriquecimientos adicionales disponibles para productos de datos de Enterprise, como metadatos de expansión de URL, geolocalización de perfil, metadatos de encuestas y métricas de interacción adicionales.
- El formato Enriched Native incluye todos los metadatos incorporados desde 2017, como los metadatos de encuestas, y métricas adicionales como reply_count y quote_count.
- El formato Activity Streams no se ha actualizado con nuevos metadatos ni enriquecimientos desde la actualización del límite de caracteres de 2017.
- Enriquecimiento de URL expandidas y mejoradas
- Enriquecimiento de reglas coincidentes
- Enriquecimiento de metadatos de encuestas
- Enriquecimiento de geolocalización de perfil
Comparación de objetos por formato de datos
Enriquecido nativo | Activity Streams |
---|---|
Link Objeto de Post | Link Objeto de actividad |
Link Objeto de usuario | Link Objeto de actor |
Link Objeto de entidades | Link Objeto de entidades de X |
Link Objeto de entidades extendidas | Link Objeto de entidades extendidas de X |
Link Objeto geográfico | Link Objeto de ubicación |
n/a | Link Objeto de Gnip |
Mejores prácticas de análisis
- El JSON de X se codifica con caracteres UTF-8.
- Los analizadores deben tolerar con facilidad la variación en el orden de los fields. Se debe asumir que el JSON de Post se sirve como un hash no ordenado de data.
- Los analizadores deben tolerar la adición de fields “nuevos”.
- Los analizadores de JSON deben tolerar fields “faltantes”, ya que no todos los fields aparecen en todos los context.
- Por lo general, es seguro considerar un field con valor nulo, un conjunto vacío y la ausencia de un field como equivalentes.
Objetos de datos enriquecidos nativos de Enterprise
Objeto Tweet Enriquecido Nativo
¿Te interesa conocer más sobre cómo el formato de datos Enriquecido Nativo se corresponde con el de X API v2? Consulta nuestra guía de comparación: Enriquecido Nativo frente a X API v2
Objeto de Post
id
, created_at
y text
. Los objetos de Post también tendrán objetos anidados que incluyen user
, entities
y extended_entities
. Los objetos de Post también tendrán otros objetos de Post anidados como retweeted_status
, quoted_status
y extended_tweet
. El formato nativo enriquecido además tendrá un objeto matching_rules
.
Diccionario de datos de X
Atributo | Tipo | Descripción |
---|---|---|
created_at | String | Hora UTC en la que se creó este Post. Ejemplo: “created_at”: “Wed Oct 10 20:19:24 +0000 2018” |
id | Int64 | La representación entera del identificador único para este Post. Este número es mayor a 53 bits y algunos lenguajes de programación pueden tener dificultades/defectos silenciosos al interpretarlo. Es seguro usar un entero con signo de 64 bits para almacenar este identificador. Use id_str para obtener el identificador de forma segura. Consulte IDs de X para más información. Ejemplo:“id”:1050118621198921728 |
id_str | String | La representación de cadena del identificador único para este Post. Las implementaciones deben usar esto en lugar del entero grande en id . Ejemplo:“id_str”:“1050118621198921728” |
text | String | El texto UTF-8 real de la actualización de estado. Consulte X-text para obtener detalles sobre qué caracteres se consideran válidos actualmente. Ejemplo: “text”:“To make room for more expression, we will now count all emojis as equal—including those with gender and skin t… https://t.co/MkGjXf9aXm” |
source | String | Utilidad utilizada para publicar el Post, como una cadena con formato HTML. Los Posts del sitio web de X tienen un valor de source de web .Ejemplo: “source”:“X Web Client” |
truncated | Boolean | Indica si el valor del parámetro text fue truncado, por ejemplo, como resultado de un retweet que excede el límite original de longitud de texto del Post de 140 caracteres. El texto truncado terminará en puntos suspensivos, como esto ... Dado que X ahora rechaza Posts largos en lugar de truncarlos, la gran mayoría de Posts tendrán esto establecido en false . Tenga en cuenta que aunque los retweets nativos pueden tener su propiedad text de nivel superior acortada, el texto original estará disponible bajo el objeto retweeted_status y el parámetro truncated se establecerá al valor del estado original (en la mayoría de los casos, false ). Ejemplo:“truncated”:true |
in_reply_to_status_id | Int64 | Anulable. Si el Post representado es una respuesta, este campo contendrá la representación entera del ID del Post original. Ejemplo: “in_reply_to_status_id”:1051222721923756032 |
in_reply_to_status_id_str | String | Anulable. Si el Post representado es una respuesta, este campo contendrá la representación de cadena del ID del Post original. Ejemplo: “in_reply_to_status_id_str”:“1051222721923756032” |
in_reply_to_user_id | Int64 | Anulable. Si el Post representado es una respuesta, este campo contendrá la representación entera del ID del autor del Post original. Esto no necesariamente será siempre el usuario mencionado directamente en el Post. Ejemplo: “in_reply_to_user_id”:6253282 |
in_reply_to_user_id_str | String | Anulable. Si el Post representado es una respuesta, este campo contendrá la representación de cadena del ID del autor del Post original. Esto no necesariamente será siempre el usuario mencionado directamente en el Post. Ejemplo: “in_reply_to_user_id_str”:“6253282” |
in_reply_to_screen_name | String | Anulable. Si el Post representado es una respuesta, este campo contendrá el nombre de pantalla del autor del Post original. Ejemplo: “in_reply_to_screen_name”:“xapi” |
user | Objeto de usuario | El usuario que publicó este Post. Consulte el diccionario de datos de usuario para obtener una lista completa de atributos. Ejemplo que destaca atributos seleccionados: { “user”: <br/> “id”: 6253282, “id_str”: “6253282”, “name”: “X API”, “screen_name”: “API”, “location”: “San Francisco, CA”, “url”: “https://developer.x.com”, “description”: “The Real X API. Tweets about API changes, service issues and our Developer Platform. Don’t get an answer? It’s on my website.”, “verified”: true, “followers_count”: 6129794, “friends_count”: 12, “listed_count”: 12899, “favourites_count”: 31, “statuses_count”: 3658, “created_at”: “Wed May 23 06:01:13 +0000 2007”, “utc_offset”: null, “time_zone”: null, “geo_enabled”: false, “lang”: “en”, “contributors_enabled”: false, “is_translator”: false, “profile_background_color”: “null”, “profile_background_image_url”: “null”, “profile_background_image_url_https”: “null”, “profile_background_tile”: null, “profile_link_color”: “null”, “profile_sidebar_border_color”: “null”, “profile_sidebar_fill_color”: “null”, “profile_text_color”: “null”, “profile_use_background_image”: null, “profile_image_url”: “null”, “profile_image_url_https”: “https://pbs.twimg.com/profile_images/942858479592554497/BbazLO9L_normal.jpg”, “profile_banner_url”: “https://pbs.twimg.com/profile_banners/6253282/1497491515”, “default_profile”: false, “default_profile_image”: false, “following”: null, “follow_request_sent”: null, “notifications”: null } } |
coordinates | Coordinates | Nullable. Representa la ubicación geográfica de este Post según lo reportado por el usuario o la aplicación cliente. El array interno de coordenadas está formateado como geoJSON (longitud primero, luego latitud). Ejemplo: “coordinates”: <br/> “coordinates”: [ -75.14310264, 40.05701649 ], “type”:“Point” } |
place | Places | Nullable Cuando está presente, indica que el Post está asociado (pero no necesariamente originado desde) un lugar. Ejemplo: “place”: <br/> “attributes”:, “bounding_box”: <br/> “coordinates”: [[ [-77.119759,38.791645], [-76.909393,38.791645], [-76.909393,38.995548], [-77.119759,38.995548] ]], “type”:“Polygon” }, “country”:“United States”, “country_code”:“US”, “full_name”:“Washington, DC”, “id”:“01fbe706f872cb32”, “name”:“Washington”, “place_type”:“city”, “url”:“http://api.x.com/1/geo/id/0172cb32.json” } |
quoted_status_id | Int64 | Este campo solo aparece cuando el Post es un Tweet citado. Este campo contiene el valor entero del ID de Post del Tweet citado. Ejemplo: “quoted_status_id”:1050119905717055488 |
quoted_status_id_str | String | Este campo solo aparece cuando el Post es un Tweet citado. Esta es la representación en cadena del ID de Post del Tweet citado. Ejemplo: “quoted_status_id_str”:“1050119905717055488” |
is_quote_status | Boolean | Indica si este es un Tweet citado. Ejemplo: “is_quote_status”:false |
quoted_status | Post | Este campo solo aparece cuando el Post es un Tweet citado. Este atributo contiene el objeto de Post del Post original que fue citado. |
retweeted_status | Post | Los usuarios pueden amplificar la difusión de Posts creados por otros usuarios mediante Retweet. Los Retweets se pueden distinguir de los Posts típicos por la existencia de un atributo retweeted_status . Este atributo contiene una representación del Post original que fue retweeteado. Tenga en cuenta que los retweets de retweets no muestran representaciones del retweet intermediario, sino solo el Post original. (Los usuarios también pueden deshacer un retweet que crearon eliminando su retweet.) |
quote_count | Integer | Nullable. Indica aproximadamente cuántas veces este Post ha sido citado por usuarios de X. Ejemplo: “quote_count”:33 Nota: Este objeto solo está disponible con los productos de nivel Premium y Enterprise. |
reply_count | Int | Número de veces que se ha respondido a este Post. Ejemplo: “reply_count”:30 Nota: Este objeto solo está disponible con los productos de nivel Premium y Enterprise. |
retweet_count | Int | Número de veces que este Post ha sido retweeteado. Ejemplo: “retweet_count”:160 |
favorite_count | Integer | Nullable. Indica aproximadamente cuántas veces este Post ha recibido like de usuarios de X. Ejemplo: “favorite_count”:295 |
entities | Entities | Entidades que han sido extraídas del texto del Post. Consulte también Entities in X Objects. Ejemplo: “entities”: <br/> “hashtags”:[], “urls”:[], “user_mentions”:[], “media”:[], “symbols”:[] “polls”:[] } |
extended_entities | Extended Entities | Cuando hay entre una y cuatro fotos nativas o un video o un GIF animado en el Post, contiene un array ‘media’ de metadatos. Esto también está disponible en Tweets citados. Consulte también Entities in X Objects. Ejemplo: “entities”: <br/> “media”:[] } |
favorited | Boolean | Nullable. Indica si este Post ha recibido like del usuario autenticado. Ejemplo: “favorited”:true |
retweeted | Boolean | Indica si este Post ha sido retweeteado por el usuario autenticado. Ejemplo: “retweeted”:false |
possibly_sensitive | Boolean | Nullable. Este campo indica que el contenido puede ser reconocido como sensible. El autor del Post puede seleccionar dentro de las preferencias de su propia cuenta y elegir “Marcar medios que publiques como que tienen material que puede ser sensible” para que cada Post creado después tenga esta bandera activada. Esto también puede ser juzgado y etiquetado por un agente interno de soporte de X. ”possibly_sensitive”:false |
filter_level | String | Indica el valor máximo del parámetro filter_level que puede usarse y aún transmitir este Post en stream. Así que un valor de medium será transmitido en streams none , low , y medium .Ejemplo: “filter_level”: “low” |
lang | String | Nullable. Cuando está presente, indica un identificador de idioma BCP 47 correspondiente al idioma detectado automáticamente del texto del Post, o und si no se pudo detectar ningún idioma. Ejemplo: “lang”: “en” |
edit_history | Object | Identificadores únicos que indican todas las versiones de un Post. Para Posts sin ediciones, habrá un ID. Para Posts con historial de ediciones, habrá múltiples IDs, organizados en orden ascendente que refleja el orden de las ediciones, con la versión más reciente en la última posición del array. Los IDs de Post se pueden usar para hidratar y visualizar versiones anteriores de un Post. Ejemplo: edit_history”: <br/> “initial_tweet_id”: “1283764123” “edit_tweet_ids”: [“1283764123”, “1394263866”] } |
edit_controls | Object | Cuando está presente, indica durante cuánto tiempo un Post aún es editable y el número de ediciones restantes. Los Posts solo son editables durante los primeros 30 minutos después de la creación y se pueden editar hasta cinco veces. Los IDs de Post se pueden usar para hidratar y visualizar versiones anteriores de un Post. Ejemplo: “edit_controls”: <br/> “editable_until_ms”: 123 “edits_remaining”: 3 } |
editable | Boolean | Cuando está presente, indica si un Post era elegible para edición cuando se publicó. Este campo no es dinámico y no cambiará de True a False cuando un Post alcance su límite de tiempo editable o el número máximo de ediciones. Las siguientes características del Post harán que este campo sea false: _ El Post está promocionado _ El Post tiene una encuesta _ El Post es una respuesta que no es un hilo propio _ El Post es un retweet (ten en cuenta que los Quote Tweets sí son elegibles para edición) _ El Post es nullcast _ Post de Comunidad _ Post de Superfollow _ Post Colaborativo |
matching_rules | Array of Rule Objects | Presente en productos filtrados como X Search y PowerTrack. Proporciona el id y tag asociados con la regla que coincidió con el Post. Más información sobre reglas de coincidencia aquí. Con PowerTrack, más de una regla puede coincidir con un Post. Ejemplo: “matching_rules”: ” [<br/> “tag”: “xapi emojis”, “id”: 1050118621198921728, “id_str”: “1050118621198921728” }]“ |
Atributos adicionales de Post
Attribute | Type | Description |
---|---|---|
current_user_retweet | Object | Perspectival Solo aparece en los métodos que admiten el parámetro include_my_retweet cuando se establece en true. Detalla el ID de Post del propio Retweet del usuario (si existe) de este Post. Ejemplo: “current_user_retweet”: <br/> “id”: 6253282, “id_str”: “6253282” } |
scopes | Object | Un conjunto de pares clave-valor que indican la entrega contextual prevista del Post que lo contiene. Actualmente utilizado por los Promoted Products de X. Ejemplo: “scopes”:{“followers”:false} |
withheld_copyright | Boolean | Cuando está presente y establecido en “true”, indica que este contenido se ha retenido debido a una reclamación DMCA. Ejemplo: “withheld_copyright”: true |
withheld_in_countries | Array of String | Cuando está presente, indica una lista de códigos de país de dos letras en mayúsculas de los que se retiene este contenido. X admite los siguientes valores que no corresponden a países para este campo: “XX” - El contenido se retiene en todos los países “XY” - El contenido se retiene debido a una solicitud DMCA. Ejemplo: “withheld_in_countries”: [“GR”, “HK”, “MY”] |
withheld_scope | String | Cuando está presente, indica si el contenido retenido es el “status” o un “user”. Ejemplo: “withheld_scope”: “status” |
Atributos obsoletos
Campo | type | Descripción |
geo | Objeto | Obsoleto. Nullable. Use el campo coordinates en su lugar. Este atributo obsoleto tiene sus coordenadas con el formato [lat, long], mientras que el resto de la información de geolocalización de los Post usa el formato [long, lat]. |
Objetos de Post anidados
Tweets citados
Posts extendidos
Objeto de usuario nativo enriquecido
Diccionario de datos del usuario
Atributo | Tipo | Descripción |
---|---|---|
id | Int64 | La representación entera del identificador único para este Usuario. Este número es mayor a 53 bits y algunos lenguajes de programación pueden tener dificultades/defectos silenciosos al interpretarlo. Usar un entero con signo de 64 bits para almacenar este identificador es seguro. Usa id_str para obtener el identificador de forma segura. Consulta X IDs para más información. Ejemplo:“id”: 6253282 |
id_str | String | La representación de cadena del identificador único para este Usuario. Las implementaciones deben usar esto en lugar del entero grande, posiblemente no consumible en id . Ejemplo:“id_str”: “6253282” |
name | String | El nombre del usuario, tal como lo han definido. No necesariamente el nombre de una persona. Típicamente limitado a 50 caracteres, pero sujeto a cambios. Ejemplo: “name”: “API” |
screen_name | String | El nombre de pantalla, identificador o alias con el que este usuario se identifica. Los screen_names son únicos pero sujetos a cambios. Usa id_str como identificador de usuario siempre que sea posible. Típicamente un máximo de 15 caracteres de longitud, pero algunas cuentas históricas pueden existir con nombres más largos. Ejemplo:“screen_name”: “api” |
location | String | Anulable. La ubicación definida por el usuario para el perfil de esta cuenta. No necesariamente una ubicación, ni interpretable por máquina. Este campo ocasionalmente será interpretado de forma difusa por el servicio de Búsqueda. Ejemplo: “location”: “San Francisco, CA” |
derived | Arrays of Enrichment Objects | Solo APIs Enterprise. Colección de metadatos de Enriquecimiento derivados para el usuario. Proporciona los metadatos de Enriquecimiento Profile Geo. Consulta la documentación referenciada para más información, incluyendo diccionarios de datos JSON. Ejemplo: “derived”:“locations”: [“country”:“United States”,“country_code”:“US”,“locality”:“Denver”] |
url | String | Anulable. Una URL proporcionada por el usuario en asociación con su perfil. Ejemplo: “url”: “https://developer.x.com” |
description | String | Anulable. La cadena UTF-8 definida por el usuario que describe su cuenta. Ejemplo: “description”: “The Real X API.” |
protected | Boolean | Cuando es verdadero, indica que este usuario ha elegido proteger sus Posts. Consulta Acerca de Posts Públicos y Protegidos. Ejemplo: “protected”: true |
verified | Boolean | Cuando es verdadero, indica que el usuario tiene una cuenta verificada. Consulta Cuentas Verificadas. Ejemplo: “verified”: false |
followers_count | Int | El número de seguidores que esta cuenta tiene actualmente. Bajo ciertas condiciones de estrés, este campo indicará temporalmente “0”. Ejemplo: “followers_count”: 21 |
friends_count | Int | El número de usuarios que esta cuenta está siguiendo (también conocidos como sus “seguidos”). Bajo ciertas condiciones de estrés, este campo indicará temporalmente “0”. Ejemplo: “friends_count”: 32 |
listed_count | Int | El número de listas públicas de las que este usuario es miembro. Ejemplo: “listed_count”: 9274 |
favourites_count | Int | El número de Posts que este usuario ha marcado como “me gusta” en la vida útil de la cuenta. Se usa la ortografía británica en el nombre del campo por razones históricas. Ejemplo: “favourites_count”: 13 |
statuses_count | Int | El número de Posts (incluyendo retweets) emitidos por el usuario. Ejemplo: “statuses_count”: 42 |
created_at | String | La fecha y hora UTC en que la cuenta de usuario fue creada en X. Ejemplo: “created_at”: “Mon Nov 29 21:18:15 +0000 2010” |
profile_banner_url | String | La URL basada en HTTPS que apunta a la representación web estándar del banner de perfil cargado por el usuario. Al agregar un elemento de ruta final a la URL, es posible obtener diferentes tamaños de imagen optimizados para pantallas específicas. Para variantes de tamaño, consulta Imágenes de Perfil de Usuario y Banners. Ejemplo: “profile_banner_url”: “https://si0.twimg.com/profile_banners/819797/1348102824” |
profile_image_url_https | String | Una URL basada en HTTPS que apunta a la imagen de perfil del usuario. Ejemplo: “profile_image_url_https”: “https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png” |
default_profile | Boolean | Cuando es verdadero, indica que el usuario no ha alterado el tema o fondo de su perfil de usuario. Ejemplo: “default_profile”: false |
default_profile_image | Boolean | Cuando es verdadero, indica que el usuario no ha cargado su propia imagen de perfil y se usa una imagen predeterminada en su lugar. Ejemplo: “default_profile_image”: false |
Atributos en desuso (no compatibles)
Field | Type | Description |
---|---|---|
utc_offset | null | El valor se establecerá en null. Sigue disponible mediante GET account/settings |
time_zone | null | El valor se establecerá en null. Sigue disponible mediante GET account/settings como tzinfo_name |
lang | null | El valor se establecerá en null. Sigue disponible mediante GET account/settings como language |
geo_enabled | null | El valor se establecerá en null. Sigue disponible mediante GET account/settings. Este campo debe ser true para que el usuario actual pueda adjuntar datos geográficos al usar POST statuses / update |
following | null | El valor se establecerá en null. Sigue disponible mediante GET friendships/lookup |
follow_request_sent | null | El valor se establecerá en null. Sigue disponible mediante GET friendships/lookup |
has_extended_profile | null | En desuso. El valor se establecerá en null. |
notifications | null | En desuso. El valor se establecerá en null. |
profile_location | null | En desuso. El valor se establecerá en null. |
contributors_enabled | null | En desuso. El valor se establecerá en null. |
profile_image_url | null | En desuso. El valor se establecerá en null. NOTA: Las imágenes de perfil solo están disponibles mediante el campo profile_image_url_https. |
profile_background_color | null | En desuso. El valor se establecerá en null. |
profile_background_image_url | null | En desuso. El valor se establecerá en null. |
profile_background_image_url_https | null | En desuso. El valor se establecerá en null. |
profile_background_tile | null | En desuso. El valor se establecerá en null. |
profile_link_color | null | En desuso. El valor se establecerá en null. |
profile_sidebar_border_color | null | En desuso. El valor se establecerá en null. |
profile_sidebar_fill_color | null | En desuso. El valor se establecerá en null. |
profile_text_color | null | En desuso. El valor se establecerá en null. |
profile_use_background_image | null | En desuso. El valor se establecerá en null. |
is_translator | null | En desuso. El valor se establecerá en null. |
is_translation_enabled | null | En desuso. El valor se establecerá en null. |
translator_type | null | En desuso. El valor se establecerá en null. |
Ejemplo de objeto de usuario:
Objetos geográficos nativos enriquecidos
place
siempre está presente cuando un Post está etiquetado geográficamente con un lugar. Los Places son ubicaciones específicas y con nombre, con coordenadas geográficas correspondientes. Cuando los usuarios deciden asignar una ubicación a su Post, se les presenta una lista de X Places candidatos. Al usar la API para publicar, se puede adjuntar un X Place especificando un place_id al publicar. Los Posts asociados con Places no necesariamente se originan en esa ubicación, sino que también pueden ser sobre esa ubicación.
Los objetos geo y coordinates
solo están presentes (no nulos) cuando al Post se le asigna una ubicación exacta. Si se proporciona una ubicación exacta, el objeto coordinates
entregará un arreglo [long, lat] con las coordenadas geográficas y se asignará un X Place que corresponda a esa ubicación.
Diccionario de datos de Place
Field | Type | Description |
---|---|---|
id | String | ID que representa este lugar. Tenga en cuenta que se representa como una cadena, no como un entero. Ejemplo: “id”:“01a9a39529b27f36” |
url | String | URL que indica la ubicación de metadatos adicionales de Place para este lugar. Ejemplo: “url”:“https://api.x.com/1.1/geo/id/01a9a39529b27f36.json” |
place_type | String | Tipo de ubicación representada por este lugar. Ejemplo: “place_type”:“city” |
name | String | Representación breve y legible por humanos del nombre del lugar. Ejemplo: “name”:“Manhattan” |
full_name | String | Representación completa y legible por humanos del nombre del lugar. Ejemplo: “full_name”:“Manhattan, NY” |
country_code | String | Código de país abreviado que representa el país que contiene este lugar. Ejemplo: “country_code”:“US” |
country | String | Nombre del país que contiene este lugar. Ejemplo: “country”:“United States” |
bounding_box | Object | Un cuadro delimitador de coordenadas que delimita este lugar. Ejemplo: “bounding_box”: “coordinates”: [ [ [ -74.026675, 40.683935 ], [ -74.026675, 40.877483 ], [ -73.910408, 40.877483 ], [ -73.910408, 40.3935 ] ] ], “type”: “Polygon” |
attributes | Object | Al usar PowerTrack, las APIs de búsqueda de 30 días y de archivo completo, y los streams de volumen, este hash es null. Ejemplo: “attributes”: |
Campo | Tipo | Descripción |
coordinates | Array of Array of Array of Float | Una serie de puntos de longitud y latitud que definen un cuadro que contendrá la entidad Place a la que está asociado este cuadro delimitador. Cada punto es un array con el formato [longitude, latitude]. Los puntos se agrupan en un array por cada cuadro delimitador. Los arrays de cuadros delimitadores se encapsulan en un array adicional para ser compatibles con la notación de polígono. Ejemplo: “coordinates”: [ [ [ -74.026675, 40.683935 ], [ -74.026675, 40.877483 ], [ -73.910408, 40.877483 ], [ -73.910408, 40.3935 ] ] ] |
type | String | El tipo de data codificada en la propiedad coordinates. Será “Polygon” para cuadros delimitadores y “Point” para Posts con coordenadas exactas. Ejemplo: “type”:“Polygon” |
Diccionario de datos del objeto Geo
Campo | Tipo | Descripción |
coordinates | Colección de Float | La longitud y la latitud de la ubicación del Post, como una colección con el formato [latitude, longitude]. Ejemplo: ** “geo”: “type”:** “Point”, ** “coordinates”: [ 54.27784, -0.41068 ] ** |
type | String | El tipo de datos codificados en la propiedad coordinates. En los campos coordinates de un Post, este valor será “Point”. Ejemplo: “type”: “Point” |
Campo | Tipo | Descripción |
coordinates | Colección de Float | La longitud y la latitud de la ubicación del Post, como una colección con el formato [longitude, latitude]. Ejemplo: ** “coordinates”: “type”:** “Point”, ** “coordinates”: [ -0.41068, 54.27784 ] ** |
type | String | El tipo de datos codificados en la propiedad coordinates. En los campos coordinates de un Post, este valor será “Point”. Ejemplo: “type”: “Point” |
Ubicaciones derivadas
Campo | Tipo | Descripción |
derived | objeto de ubicaciones | Ubicación derivada del enriquecimiento geográfico del perfil “derived”: “locations”: [ ** “country”:** “United Kingdom”, “country_code”: “GB”, “locality”: “Yorkshire”, “region”: “England”, “full_name”: “Yorkshire, England, United Kingdom”, ** “geo”: “coordinates”: [ -1.5, 54 ], “type”:** “point” ** ] ** |
Ejemplos:
Entidades de X
Ir a sección en esta página Introducción Objeto entities - Objeto hashtag - Objeto media - Objeto tamaño de media - Objeto URL - Objeto mención de usuario - Objeto símbolo - Objeto encuesta Detalles de Retweet y Quote Tweet Entidades en objetos de usuario Entidades en Mensajes Directos Siguientes pasosIntroducción
entities
ofrece arreglos con elementos comunes incluidos en los Posts: hashtags, menciones de usuarios, enlaces, símbolos bursátiles (tickers), encuestas de X y contenido multimedia adjunto. Estos arreglos son útiles para los desarrolladores al ingerir Posts, ya que X básicamente ha preprocesado (o preparseado) el cuerpo del texto. En lugar de tener que buscar y localizar explícitamente estas entidades en el cuerpo del Post, su parser puede ir directamente a esta sección JSON y allí estarán.
Además de facilitar el parseo, la sección entities
también aporta metadatos útiles de valor añadido. Por ejemplo, si utiliza el Enhanced URLs enrichment, los metadatos de URL incluyen direcciones completamente expandidas, así como los títulos y descripciones del sitio web asociados. Otro ejemplo: cuando hay menciones de usuarios, los metadatos de entities incluyen el id numérico del usuario, lo cual es útil al realizar solicitudes a muchas X APIs.
Cada payload JSON de un Post incluye una sección entities
, con el conjunto mínimo de atributos hashtags
, urls
, user_mentions
y symbols
, incluso si ninguna de esas entidades forma parte del mensaje del Post. Por ejemplo, si examina el JSON de un Post con un cuerpo de “Hello World!” y sin contenido multimedia adjunto, el JSON del Post incluirá el siguiente contenido con arreglos de entidades que contienen cero elementos:
- las entidades media y polls solo aparecerán cuando ese tipo de contenido forme parte del Post.
- si trabajas con media nativa (fotos, videos o GIF), el objeto Extended Entities es la opción recomendada.
Objeto Entities
entities
y extended_entities
están compuestas por arreglos de objetos de entidad. A continuación, encontrará descripciones de cada uno de estos objetos de entidad, incluidos diccionarios de datos que describen los nombres de atributos del objeto, los tipos y una breve descripción. También indicaremos qué PowerTrack Operators coinciden con estos atributos e incluiremos algunos payloads JSON de ejemplo.
Una colección de entidades comunes que se encuentran en los Posts, incluidas las etiquetas (hashtags), los enlaces y las menciones de usuario. Este objeto entities
sí incluye un atributo media
, pero su implementación en la sección entities
solo es completamente precisa para Posts con una sola foto. Para todos los Posts con más de una foto, un video o un GIF animado, se remite al lector a la sección extended_entities
.
Diccionario de datos de entidades
entities
, se proporcionarán diccionarios de datos para estos subobjetos y los operadores que los relacionan.
Campo | Tipo | Descripción |
---|---|---|
hashtags | Array de Objetos Hashtag | Representa hashtags que han sido analizados del texto del Post. Ejemplo: “hashtags”: [ “indices”: [ 32, 38 ], “text”: “nodejs” ] |
media | Array de Objetos Media | Representa elementos multimedia cargados con el Post. Ejemplo: “media”: [ “display_url”: “pic.x.com/5J1WJSRCy9”, “expanded_url”: “https://x.com/nolan_test/status/930077847535812610/photo/1”, “id”: 9.300778475358126e17, “id_str”: “930077847535812610”, “indices”: [ 13, 36 ], “media_url”: “http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg” “sizes”: “thumb”: “h”: 150, “resize”: “crop”, “w”: 150 , “large”: “h”: 1366, “resize”: “fit”, “w”: 2048 , “medium”: “h”: 800, “resize”: “fit”, “w”: 1200 , “small”: “h”: 454, “resize”: “fit”, “w”: 680 , “type”: “photo”, “url”: “https://t.co/5J1WJSRCy9”, ] |
urls | Array de Objetos URL | Representa URLs incluidas en el texto de un Post. Ejemplo (sin enriquecimiento de URLs mejoradas habilitado): “urls”: [ “indices”: [ 32, 52 ], “url”: “http://t.co/IOwBrTZR”, “display_url”: “youtube.com/watch?v=oHg5SJ…”, “expanded_url”: “http://www.youtube.com/watch?v=oHg5SJYRHA0” ] Ejemplo (con enriquecimiento de URLs mejoradas habilitado): “urls”: [ “url”: “https://t.co/D0n7a53c2l”, “expanded_url”: “http://bit.ly/18gECvy”, “display_url”: “bit.ly/18gECvy”, “unwound”: “url”: “https://www.youtube.com/watch?v=oHg5SJYRHA0”, “status”: 200, “title”: “RickRoll’D”, “description”: “http://www.facebook.com/rickroll548 As long as trolls are still trolling, the Rick will never stop rolling.” , “indices”: [ 62, 85 ] ] |
user_mentions | Array de Objetos User Mention | Representa otros usuarios de X mencionados en el texto del Post. Ejemplo: “user_mentions”: [ “name”: “X API”, “indices”: [ 4, 15 ], “screen_name”: “xapi”, “id”: 6253282, “id_str”: “6253282” ] |
symbols | Array de Objetos Symbol | Representa símbolos, es decir $cashtags, incluidos en el texto del Post. Ejemplo: “symbols”: [ “indices”: [ 12, 17 ], “text”: “twtr” ] |
polls | Array de Objetos Poll | Representa encuestas de X incluidas en el Post. Ejemplo: “polls”: [ “options”: [ “position”: 1, “text”: “I read documentation once.” , “position”: 2, “text”: “I read documentation twice.” }, “position”: 3, “text”: “I read documentation over and over again.” } ], “end_datetime”: “Thu May 25 22:20:27 +0000 2017”, “duration_minutes”: 60 ] |
Objeto de hashtag
La secciónentities
contendrá un array hashtags
con un objeto por cada hashtag incluido en el cuerpo del Post, e incluirá un array vacío si no hay hashtags.
El operador #
de PowerTrack se utiliza para hacer coincidencia sobre el atributo text
. El operador has:hashtags
hará coincidencia si hay al menos un elemento en el array.
Field | Type | Descripción |
indices | Array of Int | Un array de enteros que indica los desplazamientos dentro del texto del Post donde comienza y termina el hashtag. El primer entero representa la ubicación del carácter # en la cadena de texto del Post. El segundo entero representa la ubicación del primer carácter después del hashtag. Por lo tanto, la diferencia entre ambos números será la longitud del nombre del hashtag más uno (por el carácter ‘#’). Ejemplo: “indices”:[32,38] |
text | String | Nombre del hashtag, sin el carácter inicial ‘#’. Ejemplo: “text”:“nodejs” |
Objeto multimedia
La secciónentities
contendrá un arreglo media
con un único objeto multimedia si se ha “adjuntado” algún objeto multimedia al Post. Si no se ha adjuntado contenido multimedia nativo, no habrá arreglo media
en entities
. Por las siguientes razones, se debe usar la sección extended_entities
para procesar el contenido multimedia nativo del Post:
- El
type
de los medios siempre indicará “photo”, incluso cuando se adjunten un video o un GIF al Post. - Aunque se pueden adjuntar hasta cuatro fotos, solo la primera se listará en la sección
entities
.
has:media
hará coincidencia si este arreglo tiene contenido.
Campo | Tipo | Descripción |
display_url | String | URL del contenido multimedia para mostrar a los clientes. Ejemplo: “display_url”:“pic.x.com/rJC5Pxsu” |
expanded_url | String | Una versión expandida de display_url. Enlaza a la página de visualización del contenido multimedia. Ejemplo: “expanded_url”: “http://x.com/yunorno/status/114080493036773378/photo/1” |
id | Int64 | ID del contenido multimedia expresado como un entero de 64 bits. Ejemplo: “id”:114080493040967680 |
id_str | String | ID del contenido multimedia expresado como una cadena. Ejemplo: “id_str”:“114080493040967680” |
indices | Array of Int | Un array de enteros que indica las posiciones dentro del texto del Post donde la URL comienza y termina. El primer entero representa la ubicación del primer carácter de la URL en el texto del Post. El segundo entero representa la ubicación del primer carácter que no es URL que aparece después de la URL (o el final de la cadena si la URL es la última parte del texto del Post). Ejemplo: “indices”:[15,35] |
media_url | String | Una URL http:// que apunta directamente al archivo multimedia subido. Ejemplo: “media_url”:“http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg” Para contenido multimedia en Mensajes Directos, media_url es la misma URL https que media_url_https y debe accederse firmando una solicitud con el access token del usuario usando OAuth 1.0a.No es posible acceder a las imágenes a través de una sesión autenticada de x.com. Visite esta página para aprender cómo adaptarse a estos cambios recientes. No puede incrustar directamente estas imágenes en una página web. Consulte Formato de URL de contenido multimedia fotográfico para saber cómo formatear la URL de una foto, como media_url_https , basándose en los sizes disponibles. |
media_url_https | String | Una URL https:// que apunta directamente al archivo multimedia subido, para incrustar en páginas https. Ejemplo: “media_url_https”:“https://p.twimg.com/AZVLmp-CIAAbkyy.jpg” Para contenido multimedia en Mensajes Directos, media_url_https debe accederse firmando una solicitud con el access token del usuario usando OAuth 1.0a.No es posible acceder a las imágenes a través de una sesión autenticada de x.com. Visite esta página para aprender cómo adaptarse a estos cambios recientes. No puede incrustar directamente estas imágenes en una página web. Consulte Formato de URL de contenido multimedia fotográfico para saber cómo formatear la URL de una foto, como media_url_https , basándose en los sizes disponibles. |
sizes | Size Object | Un objeto que muestra los tamaños disponibles para el archivo multimedia. Ejemplo: “sizes”: “thumb”: “h”: 150, “resize”: “crop”, “w”: 150 }, “large”: “h”: 1366, “resize”: “fit”, “w”: 2048 }, “medium”: “h”: 800, “resize”: “fit”, “w”: 1200 }, “small”: “h”: 454, “resize”: “fit”, “w”: 680 } } } Consulte Formato de URL de contenido multimedia fotográfico para saber cómo formatear la URL de una foto, como media_url_https , basándose en los sizes disponibles. |
source_status_id | Int64 | Nullable. Para Posts que contienen contenido multimedia que originalmente estaba asociado con un Post diferente, este ID apunta al Post original. Ejemplo: “source_status_id”: 205282515685081088 |
source_status_id_str | Int64 | Nullable. Para Posts que contienen contenido multimedia que originalmente estaba asociado con un Post diferente, este ID basado en cadena apunta al Post original. Ejemplo: “source_status_id_str”: “205282515685081088” |
type | String | Tipo de contenido multimedia subido. Los tipos posibles incluyen photo, video y animated_gif. Ejemplo: “type”:“photo” |
url | String | URL encapsulada para el enlace del contenido multimedia. Esto corresponde con la URL incrustada directamente en el texto sin procesar del Post, y los valores para el parámetro indices . Ejemplo:“url”:“http://t.co/rJC5Pxsu” |
Objetos de tamaño de medios
Objeto Sizes
Field | Type | Description |
thumb | Size Object | Información sobre una versión en miniatura del medio. Ejemplo: “thumb”:“h”:150, “resize”:“crop”, “w”:150} Las fotos en tamaño miniatura se limitarán a rellenar (fill) un límite de 150x150 y se recortarán. |
large | Size Object | Información sobre una versión grande del medio. Ejemplo: “large”:“h”:454, “resize”:“fit”, “w”:680} Las fotos en tamaño pequeño se limitarán a ajustarse (fit) dentro de un límite de 680x680. |
medium | Size Object | Información sobre una versión mediana del medio. Ejemplo: “medium”:“h”:800, “resize”:“fit”, “w”:1200} Las fotos en tamaño mediano se limitarán a ajustarse (fit) dentro de un límite de 1200x1200. |
small | Size Object | Información sobre una versión pequeña del medio. Ejemplo: “small”:“h”:1366, “resize”:“fit”, “w”:2048} Las fotos en tamaño grande se limitarán a ajustarse (fit) dentro de un límite de 2048x2048. |
Objeto de tamaño
Campo | Tipo | Descripción |
w | Int | Ancho en píxeles de este tamaño. Ejemplo: “w”:150 |
h | Int | Altura en píxeles de este tamaño. Ejemplo: “h”:150 |
resize | String | Método de redimensionamiento utilizado para obtener este tamaño. Un valor de fit indica que el medio se redimensionó para ajustarse a una dimensión, manteniendo su relación de aspecto nativa. Un valor de crop indica que el medio se recortó para ajustarse a una resolución específica. Ejemplo: “resize”:“crop” |
Formato de URL de medios de fotos
media_url
o media_url_https
se pueden cargar por sí solos, lo que hará que, de forma predeterminada, se cargue la variante medium. No obstante, es preferible proporcionar una URL de medios de fotos completamente formateada siempre que sea posible.
Hay tres partes en una URL de medios de fotos:
Base URL | La URL base es la URL de medios sin la extensión de archivo. Por ejemplo: “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, La URL base sería: https://pbs.twimg.com/media/DOhM30VVwAEpIHq |
Format | El formato es el tipo de imagen en el que está codificada la foto. Los formatos posibles son jpg o png, y aparecen como la extensión de la URL de medios. Por ejemplo: “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, El formato sería: jpg |
Name | El name es el nombre del campo del tamaño que se va a cargar. Por ejemplo: “sizes”: “thumb”: “h”: 150, “resize”: “crop”, “w”: 150 , “large”: “h”: 1366, “resize”: “fit”, “w”: 2048 }, “medium”: “h”: 800, “resize”: “fit”, “w”: 1200 }, “small”: “h”: 454, “resize”: “fit”, “w”: 680 } } } El name al cargar la foto de tamaño grande sería: large |
Legacy format | El formato heredado está obsoleto. Todas las cargas de fotos deben migrar al formato moderno. <base_url>.<format>:<name> Por ejemplo: https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg:large |
Modern format | El formato moderno para cargar fotos se estableció en X en 2015 y es el estándar de facto desde 2017. Todas las cargas de fotos deben pasar a este formato. <base_url>?format=<format>&name=<name> Por ejemplo: https://pbs.twimg.com/media/DOhM30VVwAEpIHq?format=jpg&name=large Nota: los elementos de la cadena query de la URL del medio de foto están en orden alfabético. Si la carga de medios añadiera elementos de query adicionales, sería necesario mantener el orden alfabético. Por ejemplo, si existiera el hipotético nuevo elemento de query llamado preferred_format, iría después de format y name en la cadena de query. |
Objeto URL
La secciónentities
contendrá un arreglo urls
con un objeto por cada enlace incluido en el cuerpo del Post, y un arreglo vacío si no hay enlaces.
El operador has:links
coincide si hay al menos un elemento en el arreglo. El operador url:
se usa para hacer coincidir el atributo expanded_url
. Si usas el Expanded URL enrichment, el operador url:
se usa para hacer coincidir el atributo unwound.url
(URL completamente desplegada). Si usas el Enhanced URL enrichment, los operadores url_title:
y url_description:
se usan para hacer coincidir los atributos unwound.title
y unwound.description
.
Field | Type | Description |
display_url | String | URL pegada/escrita en el Post. Ejemplo: “display_url”:“bit.ly/2so49n2” |
expanded_url | String | Versión expandida de display_url . Ejemplo:“expanded_url”:“http://bit.ly/2so49n2” |
indices | Array of Int | Arreglo de enteros que representan los desplazamientos dentro del texto del Post donde comienza y termina la URL. El primer entero representa la ubicación del primer carácter de la URL en el texto del Post. El segundo entero representa la ubicación del primer carácter que no es parte de la URL después del final de esta. Ejemplo: “indices”:[30,53] |
url | String | URL envuelta, correspondiente al valor incrustado directamente en el texto sin procesar del Post y a los valores del parámetro indices. Ejemplo: “url”:“https://t.co/yzocNFvJuL” |
unwound
:
Field | Type | Description |
url | String | La versión completamente desplegada del enlace incluido en el Post. Ejemplo: “url”:“https://blog.x.com/en_us/topics/insights/2016/using-twitter-as-a-go-to-communication-channel-during-severe-weather-events.html” |
status | Int | Estado HTTP final del proceso de despliegue, donde ‘200’ indica éxito. Ejemplo: 200 |
title | String | Título HTML del enlace. Ejemplo: “title”:“Using X as a ‘go-to’ communication channel during severe weather” |
description | String | Descripción HTML del enlace. Ejemplo: “description”:“Using X as a ‘go-to’ communication channel during severe weather” |
Objeto de mención de usuario
La secciónentities
contendrá una matriz user_mentions
con un objeto por cada mención de usuario incluida en el cuerpo del Post, y contendrá una matriz vacía si no hay ninguna mención de usuario.
El operador @
de PowerTrack se utiliza para hacer coincidencia con el atributo screen_name
. El operador has:mentions
coincidirá si hay al menos un elemento en la matriz.
Campo | Tipo | Descripción |
id | Int64 | ID del usuario mencionado, como entero. Ejemplo: “id”:6253282 |
id_str | String | ID del usuario mencionado, como cadena. Ejemplo: “id_str”:“6253282” |
indices | Array of Int | Una matriz de enteros que representan los desplazamientos dentro del texto del Post donde comienza y termina la referencia al usuario. El primer entero representa la ubicación del carácter ‘@’ de la mención de usuario. El segundo entero representa la ubicación del primer carácter que no forma parte del screen_name después de la mención de usuario. Ejemplo: “indices”:[4,15] |
name | String | Nombre para mostrar del usuario mencionado. Ejemplo: “name”:“API” |
screen_name | String | Nombre de usuario (screen_name) del usuario mencionado. Ejemplo: “screen_name”:“api” |
Objeto de símbolo
La secciónentities
contendrá un arreglo symbols
con un objeto por cada $cashtag incluido en el cuerpo del Post, y un arreglo vacío si no hay ningún símbolo.
El operador $
de PowerTrack se usa para hacer coincidencia en el atributo text
. El operador has:symbols
hará coincidencia si hay al menos un elemento en el arreglo.
Campo | type | Descripción |
indices | Array of Int | Un arreglo de enteros que indica los desplazamientos dentro del texto del Post donde comienza y termina el símbolo/cashtag. El primer entero representa la ubicación del carácter ’). Ejemplo: “indices”:[12,17] |
text | String | Nombre del cashtag, sin el carácter inicial ‘$’. Ejemplo: “text”:“twtr” |
Objeto de encuesta
entities
contendrá una matriz polls
con un único objeto poll
si el Post incluye una encuesta. Si no se incluye ninguna encuesta, no habrá una matriz polls
en la sección entities
.
Tenga en cuenta que estos metadatos de encuesta solo están disponibles con las siguientes APIs de Enterprise:
- streams de volumen (Decahose)
- Real-time PowerTrack
- X Search APIs (Full-Archive Search y 30-Day Search)
Field | Type | Description |
options | Array of Option Object | Una matriz de opciones, cada una con una posición en la encuesta y el texto para esa posición. Ejemplo: “options”: [ “position”: 1, “text”: “I read documentation once.” } ] } |
end_datetime | String | Marca de tiempo (UTC) de cuándo finaliza la encuesta. Ejemplo: “end_datetime”: “Thu May 25 22:20:27 +0000 2017” |
duration_minutes | String | Duración de la encuesta en minutos. Ejemplo: “duration_minutes”: 60 |
Detalles de Retweet y Quote Tweet
Retweets













Quote Tweets
Entidades para el objeto de usuario
Ejemplo de JSON
Entidades extendidas de X
Ir a en esta página Introducción Objeto Extended Entities Ejemplos de Tweets y cargas JSON - Tweet con cuatro fotos nativas - Tweet con video nativo - Tweet con un GIF animado Pasos siguientesIntroducción
extended_entities
. El objeto extended_entities
contiene un único arreglo media
de objetos media
(consulte la sección entities
para su diccionario de datos). No se incluyen otros tipos de entidades, como hashtags y enlaces, en la sección extended_entities
. El objeto media
de la sección extended_entities
es idéntico en estructura al incluido en la sección entities
.
Los Posts solo pueden tener un tipo de contenido multimedia adjunto. En el caso de las fotos, se pueden adjuntar hasta cuatro. Para videos y GIF, se puede adjuntar uno. Dado que los metadatos type
del contenido multimedia en la sección extended_entities
indican correctamente el tipo de medio (‘photo’, ‘video’ o ‘animated_gif’) y admiten hasta cuatro fotos, es la fuente de metadatos preferida para contenido multimedia nativo.
Ejemplos de Posts y cargas útiles JSON
Aquí está la sección
entities
de este Post:
extended_entities
para este Post:
Post con video nativo
video_info
se reemplaza por un objeto additional_media_info
.
El objeto additional_media_info
contiene información adicional de medios proporcionada por el publicador, como title
, description
y embeddable flag
. El contenido de video solo está disponible para clientes oficiales de X cuando embeddable=false
. En este caso, todas las URL de video incluidas en el payload serán de X, de modo que el usuario pueda abrir el video en una propiedad de X al hacer clic en el enlace.
A continuación se muestra un ejemplo de cómo se ve el objeto extended entities en esta situación:
entities
que tiene el type
configurado incorrectamente en ‘photo’. Nuevamente, se recomienda utilizar la sección extended_entities
para todos los tipos de medios nativos, incluidos ‘video’ y ‘animated_gif’.
Post con un GIF animado
A continuación se muestran los metadatos de entidades ampliadas de este Post con un GIF animado:
Ejemplos de cargas útiles enriquecidas nativas
Post
Responder a un Post
Post extendido
Post con extended_entities
Retweet
Citar Tweet
Retweet de un Tweet citado
Objetos de datos de Activity Streams de Enterprise
¿Te interesa saber más sobre cómo se correlaciona el formato de datos de Activity Streams con el formato de X API v2?
Ten en cuenta: se recomienda encarecidamente usar el formato Enriched Native para las API de datos de Enterprise.
- El formato Enriched Native incluye todos los metadatos incorporados desde 2017, como poll metadata, y métricas adicionales como reply_count y quote_count.
- El formato Activity Streams no se ha actualizado con nuevos metadatos ni enriquecimientos desde la actualización del límite de caracteres de 2017.
Objeto de actividad
Diccionario de datos
Atributo | Tipo | Descripción |
id | string | Un IRI único para el Post. En detalle, “tag” es el esquema, “search.x.com” representa el dominio del esquema, y 2005 es cuando se derivó el esquema. Al almacenar Posts, esto debe utilizarse como identificador único o clave primaria. “id”: “tag:search.x.com,2005:1050118621198921728” |
objectType | string | Tipo de objeto, siempre establecido como “activity” “objectType”: “activity” |
object | object | Un objeto que representa el Post que se está publicando o compartiendo. Para Retweets, contendrá una “activity” completa, con los campos pertinentes descritos en este esquema. Para Posts originales, contendrá un objeto “note”, con los campos descritos aquí. “object”: “object”: “objectType”: “note”, “id”: “object:search.x.com,2005:1050118621198921728”, “summary”: “To make room for more expression, we will now count all emojis as equal—including those with gender and skin t… https://t.co/MkGjXf9aXm”, “link”: “http://x.com/API/statuses/1050118621198921728”, “postedTime”: “2018-10-10T20:19:24.000Z” |
long_object | object | Un objeto que representa el cuerpo de texto completo si el texto del Post supera los 140 caracteres. “long_object”: “body”: “To make room for more expression, we will now count all emojis as equal—including those with gender and skin tone modifiers 👍🏻👍🏽👍🏿. This is now reflected in Twitter-Text, our Open Source library. \n\nUsing Twitter-Text? See the forum post for detail: https://t.co/Nx1XZmRCXA”, “display_text_range”: [ 0, 277 ], “twitter_entities”: “hashtags”: [], “urls”: [ “url”: “https://t.co/Nx1XZmRCXA”, “expanded_url”: “https://devcommunity.x.com/t/new-update-to-the-twitter-text-library-emoji-character-count/114607”, “display_url”: “devcommunity.com/t/new-update-t…”, “indices”: [ 254, 277 ] ], “user_mentions”: [], “symbols”: [] |
display_text_range | array | Si el texto del Post supera los 140 caracteres. “display_text_range”: [ 0, 142 ] |
verb | string | El tipo de acción que realiza el usuario. Posts, “post” Retweets, “share” Posts eliminados, “delete” El verbo es la forma correcta de distinguir entre un Tweet y un Retweet verdadero. Sin embargo, esto solo aplica a retweets verdaderos, no a Tweets modificados o citados, que no utilizan la funcionalidad de Retweet de X. Para una descripción de los verbos AS haga clic aquí. Para eliminaciones, tenga en cuenta que solo se incluirá un número limitado de campos, como se muestra en la carga útil de ejemplo a continuación. “verb”: “post” |
postedTime | date (ISO 8601) | La hora en que ocurrió la acción, por ejemplo, la hora en que se publicó el Post. “postedTime”: “2018-10-10T20:19:24.000Z” |
generator | object | Un objeto que representa la utilidad utilizada para publicar el Post. Contendrá el nombre (“displayName”) y un enlace (“link”) de la aplicación fuente que genera el Post. “generator”: “displayName”: “X Web Client”, “link”: “http://x.com” |
provider | object | Un objeto JSON que representa el proveedor de la actividad. Contendrá un objectType (“service”), el nombre del proveedor (“displayName”), y un enlace al sitio web del proveedor (“link”). “provider”: “objectType”: “service”, “displayName”: “X”, “link”: “http://www.x.com” |
link | string | Un enlace permanente del Post. “link”: “http://x.com/API/statuses/1050118621198921728” |
body | string | El texto del Post. En Retweets, tenga en cuenta que X modifica el valor del cuerpo a nivel raíz agregando “RT @username” al principio, y truncando el texto original agregando puntos suspensivos al final. Por tanto, para Retweets, su aplicación debe consultar object.body para asegurar que extrae el texto no modificado del Post original (que está siendo retuiteado). “body”: “With Cardiff, Crystal Palace, and Hull City joining the EPL from the Championship it will be a great relegation battle at the end.” |
display_text_range | array | Describe el rango de caracteres dentro del texto del cuerpo que indica el Post mostrado. Los Posts con @menciones iniciales comenzarán en más de 0 y los Posts con medios adjuntos o que superan los 140 caracteres indicarán el display_text_range en el long_object. “display_text_range”: [ 14, 42 ] o “long_object”: “display_text_range”: [ 0, 277 ]… |
actor | object | Un objeto que representa al usuario de X que publicó. El Objeto Actor hace referencia a un Usuario de X, y contiene todos los metadatos relevantes para ese usuario. Ver detalles del objeto actor |
inReplyTo | object | Un objeto JSON que hace referencia al Post al que se está respondiendo, si aplica. Contiene un enlace al Post. “inReplyTo”: “link”: “http://x.com/GOP/statuses/349573991561838593” |
location | object | Un objeto JSON que representa el “Place” de X donde se creó el Post. Es un objeto transmitido desde la plataforma X. Ver objeto de ubicación |
twitter_entities | object | El objeto entities del formato de datos de X que contiene listas de URLs, menciones y hashtags. Consulte la documentación de X sobre Entities aquí. Tenga en cuenta que en los Retweets, X puede truncar los valores de entities que extrae a nivel raíz. Por lo tanto, para los Retweets, su App debe consultar object.twitter_entities para asegurar que está utilizando valores no truncados. Ver detalles del objeto twitter_entities |
twitter_extended_entities | object | Un objeto del formato de datos nativo de X que contiene “media”. Estará presente para cualquier Post donde el objeto twitter_entities tenga datos presentes en el campo “media”, e incluirá múltiples fotos cuando estén presentes en el Post. Tenga en cuenta que esta es la ubicación correcta para recuperar información de medios para Posts con múltiples fotos. Las múltiples fotos se representan mediante objetos JSON separados por comas dentro del array “media”. Ver detalles del objeto twitter_extended_entities |
gnip | object | Un objeto agregado al payload de actividad para indicar las reglas coincidentes y datos enriquecidos agregados basados en enriquecimientos activos en el stream o producto. Ver detalles del objeto gnip |
edit_history | Object | Identificadores únicos que indican todas las versiones de un Post. Para Posts sin ediciones, habrá un ID. Para Posts con historial de ediciones, habrá múltiples IDs organizados en orden ascendente que reflejan el orden de las ediciones, con la versión más reciente en la última posición del array. Los IDs de Post pueden utilizarse para hidratar y ver versiones anteriores de un Post. Ejemplo: edit_history”: “initial_tweet_id”: “1283764123” “edit_tweet_ids”: [“1283764123”, “1394263866”] |
edit_controls | Object | Cuando está presente, indica por cuánto tiempo un Post aún es editable y el número de ediciones restantes. Los Posts solo son editables durante los primeros 30 minutos después de la creación y pueden editarse hasta cinco veces. Los IDs de Post pueden utilizarse para hidratar y ver versiones anteriores de un Post. Ejemplo: “edit_controls”: “editable_until_ms”: 123 “edits_remaining”: 3 |
editable | Boolean | Cuando está presente, indica si un Post era elegible para edición cuando fue publicado. Este campo no es dinámico y no cambiará de True a False cuando un Post alcance su límite de tiempo editable o número máximo de ediciones. Las siguientes características del Post harán que este campo sea false: _ El Post está promocionado _ El Post tiene una encuesta _ El Post es una respuesta que no es un hilo propio _ El Post es un Retweet (tenga en cuenta que los Quote Tweets son elegibles para edición) _ El Post es nullcast _ Post de Community _ Post de Superfollow _ Post colaborativo |
Atributos adicionales de Post
Atributo | type | Descripción |
---|---|---|
twitter_lang | string | |
favoritesCount | int | Nullable. Indica aproximadamente cuántas veces este Post ha recibido like por parte de usuarios de X. “favoritesCount”: 298 |
retweetCount | int | Número de veces que este Post ha sido retuiteado. Ejemplo: “retweetCount”: 153 |
Atributos en desuso
Campo | type | Descripción |
geo | object | Ubicación puntual donde se creó el Post. |
twitter_filter_level | string | Campo en desuso mantenido para evitar cambios incompatibles. |
Objetos de actividad de Post anidados
{ "id": "tag:search.x.com,2005:222222222222", "objectType": "activity", "verb": "post", "body": "Citando un Tweet: https://t.co/mxiFJ59FlB", "actor": { "displayName": "TheQuoter2" }, "object": { "objectType": "note", "id": "object:search.x.com,2005:111111111", "summary": "https://t.co/mxiFJ59FlB" }, "twitter_entities": {}, "twitter_extended_entities": {}, "gnip": {}, "twitter_quoted_status": { "id": "tag:search.x.com,2005:111111111", "objectType": "activity", "verb": "post", "body": "console.log('Happy birthday, JavaScript!');", "actor": { "displayName": "TheOriginalTweeter" }, "object": { "objectType": "note", "id": "object:search.x.com,2005:111111111" }, "twitter_entities": {} } }
Retweet de un Tweet citado:
Objeto largo
Objeto actor
Diccionario de datos
Atributo | Tipo | Descripción |
---|---|---|
objectType | string | ”objectType”: “person” |
id | string | La representación en cadena del identificador único de este autor. Ejemplo: “id:x.com:2244994945” |
link | ”http://www.x.com/XDeveloeprs | |
displayName | String | El nombre del usuario, tal como lo ha definido. No necesariamente es el nombre de una persona. Por lo general, limitado a 50 caracteres, pero sujeto a cambios. Ejemplo: “displayName”: “XDevelopers” |
preferredUsername | string | El nombre visible, handle o alias con el que este usuario se identifica. Es único, pero puede cambiar. Usa id como identificador de usuario siempre que sea posible. Por lo general, tiene un máximo de 15 caracteres, pero pueden existir cuentas históricas con nombres más largos. Ejemplo:“preferredUsername”: “XDevelopers” |
location | object | ** “location”: “objectType”:** “place”, “displayName”: “127.0.0.1” ** }** |
links | array | Nullable. Una URL proporcionada por el usuario asociada a su perfil. Ejemplo: ** “links”: [ { “href”:** “https://developer.x.com/en/community”, “rel”: “me” ** } ]** |
summary | string | Nullable. La cadena UTF-8 definida por el usuario que describe su cuenta. Ejemplo: “summary”: “The voice of the #XDevelopers team…“ |
protected | Boolean | Cuando es true, indica que este usuario ha decidido proteger sus Posts. Consulta About Public and Protected Posts. Ejemplo: “protected”: true |
verified | Boolean | Cuando es true, indica que el usuario tiene una cuenta verificada. Consulta Verified Accounts. Ejemplo: “verified”: false |
followersCount | Int | La cantidad de seguidores que esta cuenta tiene actualmente. En determinadas condiciones de estrés, este campo indicará temporalmente “0”. Ejemplo: “followers_count”: 21 |
friendsCount | Int | La cantidad de usuarios a los que esta cuenta sigue (también llamados “followings”). En determinadas condiciones de estrés, este campo indicará temporalmente “0”. Ejemplo: “friends_count”: 32 |
listedCount | Int | La cantidad de List públicas de las que este usuario es miembro. Ejemplo: “listed_count”: 9274 |
favoritesCount | Int | La cantidad de Posts a los que este usuario ha dado like durante la vida de la cuenta. Se usa la ortografía británica en el nombre del campo por razones históricas. Ejemplo: “favourites_count”: 13 |
statusesCount | Int | La cantidad de Posts (incluidos los Retweets) emitidos por el usuario. Ejemplo: “statuses_count”: 42 |
postedTime | date | La fecha y hora UTC en que se creó la cuenta de usuario en X. Ejemplo: “postedTime”: “2013-12-14T04:35:55.036Z” |
image | string | Una URL basada en HTTPS que apunta a la imagen de perfil del usuario. Ejemplo: “image”: “https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg” |
Atributos obsoletos (deprecated)
Campo | Type | Descripción |
---|---|---|
utcOffset | null | El valor se establecerá en null. Sigue disponible mediante GET account/settings |
twitterTimeZone | null | El valor se establecerá en null. Sigue disponible mediante GET account/settings como tzinfo_name |
languages | null | El valor se establecerá en null. Sigue disponible mediante GET account/settings como language |
Ejemplos:
Objeto Location
Diccionario de datos de ubicación
Campo | Tipo | Descripción |
---|---|---|
objectType | string | Consulte aquí para obtener información más detallada. Ejemplo: “objectType”: “place” |
displayName | string | El nombre completo de la ubicación. “displayName”: “United States” |
name | string | Nombre de la ubicación según el formato JSON de lugares de X. |
link | string | Enlace a la representación JSON completa del lugar en X. “link”: “https://api.x.com/1.1/geo/id/27c45d804c777999.json” |
geo | object | Objeto de coordenadas geográficas de X. Puede ser un polígono o un punto. Consulte geo |
countryCode | String | Código de país abreviado que representa el país donde se ubica este lugar. Ejemplo: “countryCode”: “US” |
country | String | Nombre del país donde se ubica este lugar. Ejemplo: “country”: “United States” |
objetos derivados de profileLocations
Campo | Tipo | Descripción |
address | object | Dentro del objeto de ubicación profileLocation en el objeto gnip. Dirección de la ubicación derivada mediante el enriquecimiento geográfico del perfil. El nivel de granularidad puede variar. “address”: { ** “country”: “United States”, “countryCode”: “US”, “locality”: “Providence”, “region”: “Rhode Island”, “subRegion”: “Providence County” }** |
geo | object | Dentro del objeto de ubicación profileLocation en el objeto gnip. Coordenadas del centroide de la ubicación derivadas mediante el enriquecimiento geográfico del perfil. ”geo”: { ** “coordinates”: [ -98.5, 39.76 ], “type”: “point” }** |
Objeto de entidades de X
Ejemplo:
Objeto de entidades extendidas de X
twitter_extended_entities
utiliza el mismo formato y diccionario de datos que se muestran en el formato nativo enriquecido objeto extended_entities aquí.
Ejemplo:
Objeto Gnip
Diccionario de datos
Campo | Tipo | Descripción |
matching_rules | array | Contiene un array de objetos de reglas coincidentes que indican la regla con la que coincide la actividad. “matching_rules”: [ ** { “tag”: null, “id”:** 1026514022567358500**, “id_str”:** “1026514022567358464” ** } ]** |
urls | array | Contiene un array de enlaces dentro de la actividad y los metadatos de la URL expandida para el enriquecimiento de desenrollado de URL ** “urls”: [ { “url”:** “https://t.co/tGQqNxxyhU”, “expanded_url”: “https://www.youtube.com/channel/UCwUxW2CV2p5mzjMBqvqLzJA”, “expanded_status”: 200**, “expanded_url_title”:** “Birdys Daughter”, “expanded_url_description”: “Premium, single-origin, handpicked Jamaica Blue Mountain Coffee” ** } ]** |
profileLocations | array of location objects | Contiene el objeto de ubicación derivado del enriquecimiento Profile Geo ** “profileLocations”: [ { “address”: { “country”:** “Canada”, “countryCode”: “CA”, “locality”: “Toronto”, “region”: “Ontario” ** }, “displayName”:** “Toronto, Ontario, Canada”, ** “geo”: { “coordinates”: [ -79.4163, 43.70011 ], “type”:** “point” ** }, “objectType”:** “place” ** } ] }** |
Ejemplo:
Ejemplos de cargas útiles de streams de actividad
twitter_extended_entities
Cronología de metadatos de Tweet
Introducción**
En esencia, X es una red de comunicación pública, en tiempo real y global. Desde 2006, la evolución de X ha estado impulsada tanto por los patrones y convenciones de uso de los usuarios como por nuevas funciones y mejoras de producto. Si utiliza datos de X para investigación histórica, comprender la cronología de esta evolución es importante para identificar Posts de interés en el archivo de datos. X se lanzó como una sencilla App móvil por SMS y ha crecido hasta convertirse en una plataforma de comunicación integral. Una plataforma con un conjunto completo de APIs. Las APIs siempre han sido un pilar de la red de X. La primera API se lanzó poco después del lanzamiento de X. Cuando se introdujo por primera vez el etiquetado geográfico de Posts en 2009, se puso a disposición a través de una Geo API (y más tarde la capacidad de «geoetiquetar» un Post se integró en la interfaz de usuario de X.com). Hoy en día, las APIs de X impulsan la red de comunicación bidireccional que se ha convertido en fuente de noticias de última hora y de intercambio de información. Las oportunidades para crear sobre este canal de comunicación global y en tiempo real son infinitas. X pone a disposición dos APIs históricas que proporcionan acceso a cada Post disponible públicamente: Historical PowerTrack y la Full-Archive Search API. Ambas APIs proporcionan un conjunto de operadores para consultar y recopilar Posts de interés. Estos operadores hacen coincidencia con una variedad de atributos asociados con cada Post, cientos de atributos como el contenido de texto del Post, el nombre de la cuenta del autor y los enlaces compartidos en el Post. Los Posts y sus atributos se codifican en JSON, un formato común de intercambio de datos basado en texto. Así, a medida que se introducían nuevas funciones, aparecían nuevos atributos JSON y, por lo general, se incorporaban nuevos operadores de la API para hacer coincidencia con esos atributos. Si su caso de uso incluye la necesidad de escuchar lo que el mundo ha dicho en X, cuanto mejor entienda cuándo los operadores empezaron a contar con metadatos JSON para hacer coincidencia, más eficaces podrán ser sus filtros históricos de PowerTrack. A continuación, presentaremos algunos conceptos clave que sientan las bases para comprender cómo las actualizaciones en los metadatos de los Posts afectan la búsqueda de su señal de datos de interés.Conceptos clave**
De convenciones de usuarios a objetos de primera clase en X
Metadatos del Post, mutabilidad, actualizaciones y vigencia
“Medios” nativos
has:videos
, has:images
y has:media
. Estos solo coinciden con contenido multimedia compartido mediante funciones de X. Para hacer coincidir otro contenido multimedia alojado fuera de la plataforma de X, querrás usar Operadores que coincidan con los metadatos de la URL.
Entonces, antes de profundizar en los detalles de producto de Historical PowerTrack y Full-Archive Search, hagamos un recorrido por cómo X, como producto y plataforma, evolucionó con el tiempo.
Cronología de X
A continuación encontrarás una cronología seleccionada de X. La mayoría de estas actualizaciones de X afectaron de algún modo, de forma fundamental, el comportamiento del usuario, los contenidos JSON de los Post, los Operadores de query o los tres. Considerando a X como una plataforma de API, los siguientes eventos afectaron de alguna manera los payloads JSON que se utilizan para codificar los Posts. A su vez, esos detalles JSON afectan cómo las API históricas de X hacen matching sobre ellos.
Ten en cuenta que esta lista cronológica es, en general, precisa y no exhaustiva.
2006
- Octubre
- @replies se convierte en una convención.
- Surgen por primera vez los cashtags pasaron a ser enlaces clicables y buscables en junio de 2012.
- Noviembre - Se introducen los Favoritos.
2007
- Enero: las @replies pasan a ser un objeto de primera clase con un botón de respuesta en la interfaz y metadatos
in_reply_to
. - Abril: los Retweets se convierten en una convención.
- Agosto: los #hashtags surgen como una herramienta principal para buscar y organizar Posts.
2009
- Febrero: los $cashtags se convierten en una convención común para hablar de símbolos bursátiles.
- Mayo: se introduce la versión beta de Retweet con “Via @” antepuesto al cuerpo del Post.
- Junio: se introducen las cuentas verificadas.
- Agosto: los Retweets se convierten en un objeto de primera clase con el patrón “RT @” y nuevos metadatos
retweet_status
. - Octubre: se lanza la función List.
- Noviembre: se lanza la API de geotagging de Post, que proporciona el primer método para que los usuarios compartan su ubicación mediante apps de terceros.
2010
- Junio: se introdujo X Places para geolocalizar los Posts.
- Agosto: se lanzó el botón Post para sitios web, lo que facilitó compartir enlaces.
2011
- Mayo: se introdujo el botón Follow, lo que facilitó seguir cuentas asociadas a sitios web.
- Agosto: se incorporó la función de fotos nativas.
2012
- Junio: los $Cashtags pasan a ser enlaces clicables y buscables.
2014
- Marzo: Etiquetado de fotos y compatibilidad con hasta cuatro fotos. Se introdujo la metadata de X Entities extendida.
- Abril: Los emojis cuentan con compatibilidad nativa en la interfaz de X. Los emojis se usan comúnmente en Posts desde al menos 2008.
2015
- Abril: Un cambio en el diseño de la interfaz de usuario de X para los Posts reduce la cantidad de Posts con etiquetas geográficas.
- Octubre: Se introducen X Polls. Inicialmente, Polls admitía dos opciones con un período de votación de 24 horas. En noviembre, Polls empezó a admitir cuatro opciones con períodos de votación de 5 minutos a siete días. Los metadatos de las encuestas estuvieron disponibles (solo en formato nativo enriquecido) en febrero de 2017.
2016
- Febrero: GIF con búsqueda, alojados de forma nativa en el compositor de Post.
- Mayo: Se anunció “Hacer más con 140” (dmw140), con planes para nuevas formas de gestionar las respuestas y los medios adjuntos con respecto al mensaje de 140 caracteres de un Post.
- Junio: Compatibilidad nativa con video
- Junio: Retweets con cita disponibles de forma general.
- Junio: Se introducen Stickers para añadir a las fotos.
- Septiembre: Se introducen “adjuntos nativos” y la URL final deja de contar para los 140 caracteres (“dmw140, parte 1”).
2017
- Febrero: metadatos de X Poll incluidos en los metadatos de Post (solo formato nativo enriquecido).
- Abril: se introducen las “Respuestas simplificadas”, con las cuentas mencionadas en la respuesta excluidas del cómputo de los 140 caracteres (“dmw140, parte 2”).
- Mayo: actualizaciones por GDPR: user.time_zone establecido en null, user.utc_offset establecido en null, user.profile_background_image_url establecido en el valor predeterminado
- Junio: actualización de los cambios de formato de quoteTweet
- 29 de septiembre: la capacidad de editar Posts se lanza a un pequeño grupo de prueba. Los metadatos de los Posts editados se agregan al Objeto de Post cuando corresponde. Esto incluye los objetos edit_history y edit_controls. Estos metadatos no se devolverán para Posts creados antes de que se incorporara la funcionalidad de edición. No hay operadores asociados para estos metadatos. Para obtener más información sobre cómo funcionan las ediciones de Post, consulta los fundamentos de edición de Posts
lang:
, que se utiliza para hacer coincidir Posts en un idioma especificado. X ofrece un servicio de clasificación de idiomas (que admite más de 50 idiomas) y las X APIs proporcionan estos metadatos en el JSON que se genera para cada Post. Así, si un Post está escrito en español, el atributo JSON “lang” se establece en “es”. Por lo tanto, si creas un filtro con la cláusula lang:es
, solo hará coincidencia con Posts clasificados como español.
La información de la cronología también puede ayudar a interpretar mejor los datos de los Posts recibidos. Supongamos que investigas la difusión de contenido sobre los Juegos Olímpicos de Verano de 2008 y 2012. Si aplicas solo el operador is:retweet
para hacer coincidir Retweets, no habría datos coincidentes en 2008. Sin embargo, para 2012 probablemente habría millones de Retweets. A partir de esto, podrías concluir erróneamente que en 2008 los Retweets no eran una convención de los usuarios, o que simplemente nadie hizo Retweet sobre esos Juegos Olímpicos. Dado que los Retweets se convirtieron en un objeto de primera clase en 2009, necesitas agregar una cláusula de regla RT @
para ayudar a identificarlos en 2008.
Tanto los Retweets como la clasificación por idioma de los Posts son ejemplos de atributos de Post con una larga historia y muchos detalles de producto. A continuación, analizaremos más detalles de estas y otras clases de atributos importantes para hacer coincidencia y comprender los datos de X.
Reconocimiento de falsos negativos
has:videos
, que coincide con Posts con videos nativos, esa cláusula no coincidirá con ningún Post anterior a 2015.
Sin embargo, compartir videos era común en X mucho antes de 2015. Antes de eso, los usuarios compartían enlaces a videos alojados en otros sitios; en 2015, X incorporó nuevas funciones de “compartir video” directamente en la plataforma. Para encontrar esos Posts anteriores de interés, incluiría una cláusula de regla como url:"youtube.com"
.
Tenga en cuenta que, con las Search APIs, hay casos en los que se “completaron” metadatos a posteriori a medida que se reconstruía el índice. Un buen ejemplo son los cashtag en 2015, se reconstruyó el índice de Search y, en el proceso, se extrajo la entidad de símbolo de todos los cuerpos de los Posts, incluidos los de principios de 2006, cuando $
se usaba principalmente como jerga: “I hope it $oon!”.
Identificación y filtrado de atributos de Post importantes para su caso de uso
Perfiles de X
Post original y Retweets
is:retweet
permite incluir o excluir Retweets. Si se extraen datos anteriores a agosto de 2009, se necesitan dos estrategias para identificar (o no) Retweets. Antes de agosto de 2009, es necesario revisar el propio mensaje del Post y buscar coincidencias exactas con el patrón “RT @”. Para períodos posteriores a agosto de 2009, el operador is:retweet
está disponible.
Clasificaciones de idioma de los Posts
lang:
está disponible para todo el archivo de Posts. Con Historical PowerTrack, los metadatos de clasificación de idioma de X están disponibles en el archivo a partir del 26 de marzo de 2013.
Geo-referencing Posts
- Referencias geográficas en el contenido de un Post
- Posts geotagueados por el usuario.
- Ubicación de “home” del perfil de la cuenta establecida por un usuario