Consulta nuestras guías comparativas:
X API: Diccionario de datos empresarial
Introducción
Empresarial
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 Post recuperados desde la API incluyen la “actualización de estado” de un X User, pero los Retweets, las respuestas y los quote Tweets también son objetos Post. Si un Post está relacionado con otro Post, como un Retweet, una respuesta o un quote Tweet, cada uno se identificará o se incrustará dentro del objeto 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 del lugar etiquetado, los hashtags, los símbolos de cashtag, el contenido multimedia o los enlaces URL. Al trabajar con datos de X, este es un concepto importante que comprender. El formato de los datos del Post que recibirás de la X API depende del tipo de Post recibido, de la X API que estés usando y de la configuración de formato.
Los endpoints empresariales que devuelven objetos Post se han actualizado para proporcionar los metadatos necesarios para comprender el historial de edición del Post. Obtén más información sobre estos metadatos en la página de “Editar Posts”.
En el formato nativo de X, la respuesta 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 Native Enriched para las API de datos empresariales.Las API de datos empresariales entregan información en dos formatos. El formato empresarial más cercano al formato nativo estándar v1.1 es Native Enriched. El formato empresarial 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 mejoras en el formato Native Enriched desde 2017. El formato Native Enriched es exactamente lo que su nombre indica: incluye objetos nativos de X, así como enriquecimientos adicionales disponibles para productos de datos empresariales, como metadatos de expansión de URL, geolocalización de perfil, metadatos de encuestas y métricas de interacción adicionales.
- El formato Native Enriched 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 de caracteres de 2017.
- Enriquecimiento de URL expandidas y mejoradas
- Enriquecimiento de reglas de coincidencia
- 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/d | Link Objeto de Gnip |
Mejores prácticas de análisis
- El JSON de X se codifica con UTF-8.
- Los analizadores deben tolerar con facilidad variaciones en el orden de los fields. Se debe asumir que el JSON de Post se sirve como un hash de data sin orden definido.
- Los analizadores deben tolerar la incorporación de fields “nuevos”.
- Los analizadores de JSON deben tolerar fields “ausentes”, ya que no todos los fields aparecen en todos los contextos.
- Por lo general, es seguro considerar un field con valor null, un conjunto vacío y la ausencia de un field como equivalentes.
Objetos de data enriquecida nativos Empresarial
Objeto Tweet de Native Enriched
¿Quieres saber más sobre cómo el formato de datos Native Enriched se corresponde con el formato de X API v2? Consulta nuestra guía comparativa: Comparativa de Native Enriched y X API v2
Objeto Post
id, created_at y text. Los objetos Post también tendrán objetos anidados que incluyen user, entities y extended_entities. Los objetos Post también tendrán otros objetos Post anidados, como retweeted_status, quoted_status y extended_tweet. El formato nativo enriquecido además incluirá un objeto matching_rules.
Diccionario de datos de X
| Atributo | Tipo | Descripción |
|---|---|---|
| Creado_en | String | Hora en UTC en que se creó este Post. Ejemplo: “creado_en”:“mié 10 oct 20:19:24 +0000 2018” |
| id | Int64 | La representación en entero del identificador único de este Post. Este número supera los 53 bits y algunos lenguajes de programación pueden tener dificultades o presentar fallos 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 manera segura. ConsulteIDs de Xpara más información. Ejemplo:“id”:1050118621198921728 |
| id_str | Cadena de caracteres | La representación en cadena del identificador único de este Post. Las implementaciones deberían usar esta en lugar del entero de gran tamaño en**id**. Ejemplo:“id_str”:“1050118621198921728” |
| texto | String | El texto real en UTF-8 de la actualización de estado. VerX-textpara obtener detalles sobre qué caracteres se consideran válidos actualmente. Ejemplo: “texto”:“Para dar cabida a una mayor expresión, ahora contaremos todos los emojis por igual, incluidos los que tienen género y tono de piel t…https://t.co/MkGjXf9aXm” |
| origen | Cadena de texto | Utilidad utilizada para publicar el Post, como una cadena con formato HTML. Los Posts del sitio web de X tienen un valor de fuente de**web**.Ejemplo: “origen”:“Cliente web de X” |
| truncado | Booleano | Indica si el valor de**textoel parámetro se truncó, por ejemplo, como resultado de un retuit que supera el límite de 140 caracteres del texto original del Post. El texto truncado terminará en puntos suspensivos, así:...Dado que X ahora rechaza las Publicaciones largas en lugar de truncarlas, la gran mayoría de las Publicaciones tendrá este valor establecido enfalse. Tenga en cuenta que, aunque los retuits nativos pueden tener su propiedad de nivel superiortextpropiedad abreviada, el texto original estará disponible en laretweeted_statusobjeto y eltruncatedel parámetro se establecerá en el valor del estado original (en la mayoría de los casos,false**). Ejemplo:“truncado”:true |
| en_responder_a_estado_id | Int64 | Puede ser nulo.Si el Post representado es una respuesta, este campo contendrá la representación en entero del Post original.‘ID de la publicación original. Ejemplo: “en_responder_a_estado_idPuede ser nulo. Si la publicación representada es una respuesta, este campo contendrá la representación entera del ID de la publicación original. Ejemplo: “in_reply_to_status_id”:1051222721923756032:1051222721923756032 |
| en_responder_a_estado_id_str | Cadena de texto | *Nullable.*Si el Post representado es una respuesta, este campo contendrá la representación en cadena del Post original’ID de S. Ejemplo: “en_respuesta_a_estado_id_cadena”:“1051222721923756032” |
| en_respuesta_a_usuario_id | Int64 | *Admite valores nulos.*Si el Post representado es una respuesta, este campo contendrá la representación en entero del Post original’id del autor. Esto no necesariamente será siempre el usuario mencionado directamente en el Post. Ejemplo: “en_responder_a_usuario_id”:6253282 |
| en_respuesta_a_usuario_id_str | String | *Admite valores nulos.*Si el Post representado es una respuesta, este campo contendrá la representación en cadena del Post original’ID del autor. No siempre será el usuario mencionado directamente en el Post. Ejemplo: “en_responder_a_usuario_id_str”:“6253282” |
| en_responder_a_pantalla_nombre | String | *Admite valores nulos.*Si el Post representado es una respuesta, este campo contendrá el nombre de usuario del Post original’autor del s. Ejemplo: “en_responder_a_pantalla_nombre”:“xapi” |
| usuario | Objeto de usuario | El usuario que publicó este Post. Consulte el diccionario de datos de User para ver la lista completa de atributos. Ejemplo que destaca atributos específicos: { “usuario”:<br/> “id”: 6253282, “id_str”:“6253282”, “nombre”:“X API”, “pantalla_nombre”:“API”, “ubicación”:“San Francisco, CA”, “URL”:“https://developer.x.com”, “descripción”:“La X API real. Publicaciones sobre cambios en la API, problemas del servicio y nuestra Plataforma para Desarrolladores. Don’t obtienes una respuesta? Es’s en mi sitio web.”, “verificado”: true, “seguidores_conteo”: 6129794, “amigos_conteo”: 12, “en la lista_recuento”: 12899, “favoritos_conteo”: 31, “estados_recuento”: 3658, “creado_en”:“mié may 23 06:01:13 +0000 2007”, “UTC_desfase”: null, “tiempo_zona”: null, “geo_activado”: false, “idioma”:“es”, “personas colaboradoras_activado”: false, “es_traductor”: false, “perfil_fondo_color”:“null”, “perfil_antecedentes_imagen_url”:“null”, “perfil_antecedentes_imagen_url_https”:“null”, “perfil_antecedentes_mosaico”: null, “perfil_vínculo_color”:“null”, “perfil_barra lateral_borde_color”:“null”, “perfil_barra lateral_rellenar_color”:“null”, “perfil_texto_color”:“null”, “perfil_uso_antecedentes_imagen”: null, “perfil_imagen_url”:“null”, “perfil_imagen_url_https”:“https://pbs.twimg.com/profile_images/942858479592554497/BbazLO9L_normal.jpg”, “perfil_banner_url”:“https://pbs.twimg.com/profile_banners/6253282/1497491515”, “predeterminado_perfil”: false, “predeterminado_perfil_imagen”: false, “siguiendo a”: null, “seguir_solicitud_enviado”: null, “Notificaciones”: null } } |
| coordenadas | Coordenadas | *Admite valores nulos.*Representa la ubicación geográfica de este Post según lo informado por el usuario o la App cliente. La matriz interna de coordenadas tiene el formatoGeoJSON(longitud primero, luego latitud). Ejemplo: “coordenadas”: <br/> “coordenadas”: [ -75.14310264, 40,05701649 ], “tipo”:“Punto” } |
| lugar | Lugares | Admite nulosCuando está presente, indica que el Post está asociado (aunque no necesariamente se origina en él) a un Place Ejemplo: “ubicación”: <br/> “atributos”:, “límite_cuadro”: <br/> “coordenadas”: [[ [-77.119759,38.791645], [-76.909393,38.791645], [-76.909393,38.995548], [-77.119759,38.995548] ]], “tipo”:“Polygon” }, “país”:“Estados Unidos”, “país_código”:“EE. UU.”, “completo_nombre”:“Washington D. C.”, “id”:“01fbe706f872cb32”, “nombre”:“Washington”, “lugar_tipo”:“ciudad”, “url”:“http://api.x.com/1/geo/id/0172cb32.json” } |
| citado_estado_id | Int64 | Este campo solo aparece cuando el Post es un Tweet citado. Este campo contiene el valor entero del id del Post del Tweet citado. Ejemplo: “citado_estado_id”:1050119905717055488 |
| citado_estado_id_str | Cadena de texto | Este campo solo aparece cuando el Post es un Tweet con cita. Es la representación en cadena del id del Post del Tweet citado. Ejemplo: “citado_estado_id_str”:“1050119905717055488” |
| es_cita_estado | Booleano | Indica si se trata de un Tweet citado. Ejemplo: “es_cita textual_estado”:false |
| citado_estado | Post | Este campo solo aparece cuando el Post es un Tweet con cita. Este atributo contiene el objeto Post del Post original que fue citado. |
| retuiteado_estado | Post | Los usuarios pueden amplificar la difusión de los Posts creados por otros usuarios mediante un Retweet. Los Retweets pueden distinguirse de los Posts típicos por la existencia de un**retweeted_status**atributo. Este atributo contiene una representación de laoriginalPublicación que fue retuiteada. Ten en cuenta que los retuits de retuits no muestran representaciones del retuit intermedio, sino solo la Publicación original. (Los usuarios también pueden deshacer un retuit que hayan creado eliminando su propio retuit.) |
| cita textual_recuento | Entero | *Admite valores nulos.*Indica aproximadamente cuántas veces este Post ha sido citado por usuarios de X. Ejemplo: “cita textual_recuento”:33 Nota: Este objeto solo está disponible con los planes Premium y Empresarial. |
| responder_recuento | Int | Número de veces que se ha respondido a este Post. Ejemplo: “respuesta_recuento”:30 Nota: Este objeto solo está disponible con los planes Premium y Empresarial. |
| retuit_recuento | Int | Número de veces que este Post se ha retuiteado. Ejemplo: “retuit_recuento”:160 |
| favorito_recuento | Número entero | *Admite valores nulos.*Indica aproximadamente cuántas veces este Post ha recibido un Me gusta por parte de usuarios de X. Ejemplo: “favorito/a_recuento”:295 |
| entidades | Entidades | Entidades extraídas del texto del Post. Consulte tambiénEntidades en objetos de X. Ejemplo: “entidades”: <br/> “hashtags”:[], “URL”:[], “usuario_menciones”:[], “contenido multimedia”:[], “símbolos”:[] “encuestas”:[] } |
| ampliado_entidades | Entidades extendidas | Cuando hay entre una y cuatro fotos nativas, o un video, o un GIF animado en el Post, contiene un arreglo’contenido multimedia’metadatos. Esto también está disponible en los Quote Tweets. Además, consulteEntidades en objetos de X. Ejemplo: “entidades”: <br/> “contenido multimedia”:[] } |
| marcado como favorito | Boolean | *Admite valores nulos.*Indica si este Post ha sido marcado como “Me gusta” por el usuario autenticado. Ejemplo: “marcado como favorito”:true |
| retuiteado | Booleano | Indica si esta publicación ha sido retuiteada por el usuario autenticado. Ejemplo: “retuiteado”:false |
| posiblemente_sensible | Booleano | *Nullable.*Este campo indica que el contenido puede considerarse sensible. El autor del Post puede activar en las preferencias de su cuenta la opción “Marcar los medios que publicas como material que puede ser sensible” para que cada Post creado a partir de entonces tenga este indicador. Esto también puede ser evaluado y etiquetado por un agente de soporte interno de X. ”posiblemente_sensible”:false |
| filtro_nivel | Cadena de texto | Indica el valor máximo del filtro_parámetro level que puede utilizarse y aun así transmitir este Post. Por lo tanto, un valor de**mediose transmitirá enninguno,bajo, ymedium**flujos.Ejemplo: “filtro_nivel”:“baja” |
| idioma | Cadena | Nulo aceptado.Cuando está presente, indica unaBCP 47identificador de idioma correspondiente al idioma detectado automáticamente del texto del Post, oand**si no se pudo detectar un idioma.Ejemplo: “idioma”:“es” |
| Editar_historial | Objeto | Identificadores únicos que indican todas las versiones de un Post. Para los Posts sin ediciones, habrá un id. Para los Posts con historial de ediciones, habrá varios id, dispuestos en orden ascendente que refleja el orden de las ediciones, con la versión más reciente en la última posición de la matriz. Los id de Post se pueden usar para rehidratar y ver versiones anteriores de un Post. Ejemplo: editar_historial”:<br/> “inicial_Tweet_id”:“1283764123” “editar_Tweet_ids”: [“1283764123”,“1394263866”] } |
| Editar_controles | Objeto | Cuando está presente, indica durante cuánto tiempo un Post sigue siendo editable y cuántas ediciones quedan. Los Posts solo se pueden editar durante los primeros 30 minutos tras su creación y hasta un máximo de cinco veces. Los id de Post se pueden usar para hidratar y ver versiones anteriores de un Post. Ejemplo: “Editar_controles”:<br/> “editable_hasta_ms”: 123 “ediciones_pendientes”: 3 } |
| editable | Boolean | Cuando está presente, indica si un Post era elegible para edición al publicarse. Este campo no es dinámico y no’t cambia de True a False cuando un Post alcanza su límite de tiempo de edición o el número máximo de ediciones. Las siguientes funciones del Post harán que este campo sea False: - El Post está promocionado - La Post tiene una encuesta - El Post es una respuesta en hilo que no pertenece al propio autor - El Post es un retuit (ten en cuenta que los Quote Tweets pueden editarse) - El Post es de difusión nula - Post de la comunidad - Post de Superfollow - Post colaborativo |
| coincidencia_normas | Arreglo de objetos de reglas | Presente enfiltradoproductos como X Search y PowerTrack. Ofrece elidyetiquetaasociados con la regla que coincidió con el Post. Más información sobre las reglas de coincidenciaaquí. Con PowerTrack, más de una regla puede coincidir con un Post. Ejemplo: “emparejamiento_normas”:”[<br/> “tag”:“emojis de X API”, “id”: 1050118621198921728, “id_str”:“1050118621198921728” }]“ |
Atributos adicionales de Post
| Atributo | Tipo | Descripción |
|---|---|---|
| current_user_retweet | Object | Perspectival Solo aparece en métodos que admiten el parámetro include_my_retweet, cuando se establece en true. Detalla el ID del 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 contenedor. Actualmente utilizado por los Productos Promocionados de X. Ejemplo: “scopes”:{“followers”:false} |
| withheld_copyright | Boolean | Cuando está presente y establecido en “true”, indica que este contenido ha sido 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 en los que este contenido está retenido. X admite los siguientes valores no relacionados con países para este campo: “XX” - El contenido está retenido en todos los países “XY” - El contenido está retenido 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 en desuso
| Campo | Tipo | Descripción |
| geo | Objeto | En desuso. Admite valores nulos. Use el campo coordinates en su lugar. Este atributo en desuso presenta sus coordenadas con el formato [lat, long], mientras que el resto de la información geográfica de los Post se formatea como [long, lat]. |
Objetos de Post anidados
Tweets con cita
Publicaciones extendidas
Objeto de usuario nativo enriquecido
Diccionario de datos de usuario
| Atributo | Tipo | Descripción |
|---|---|---|
| id | Int64 | La representación en entero del identificador único de este usuario. Este número supera los 53 bits y algunos lenguajes de programación pueden presentar dificultades o errores silenciosos al interpretarlo. Es seguro usar un entero con signo de 64 bits para almacenar este identificador. Useid_strpara obtener el identificador de manera segura. ConsulteIDs de Xpara más información. Ejemplo:“id”: 6253282 |
| id_str | Cadena de caracteres | La representación en cadena del identificador único de este Usuario. Las implementaciones deben usar esta en lugar del entero grande, posiblemente inmanejable, enid. Ejemplo:“id_str”:“6253282” |
| nombre | String | El nombre del usuario, tal como lo haya definido. No necesariamente corresponde al nombre de una persona. Por lo general, está limitado a 50 caracteres, pero puede cambiar. Ejemplo: “nombre”:“API” |
| pantalla_nombre | String | El nombre de pantalla, handle o alias con el que este usuario se identifica. screen_Los nombres son únicos, pero pueden cambiar. Useid_strcomo identificador de usuario siempre que sea posible. Por lo general, tiene un máximo de 15 caracteres, aunque pueden existir cuentas históricas con nombres más largos. Ejemplo:“pantalla_nombre”:“API” |
| ubicación | Cadena de texto | Nullable (permite valores nulos). La ubicación definida por el usuario para el perfil de esta cuenta. No es necesariamente una ubicación ni es apta para el análisis automático. Ocasionalmente, este campo será interpretado de manera aproximada por el servicio de búsqueda. Ejemplo: “ubicación”:“San Francisco, CA” |
| derivada | Matrices de objetos de enriquecimiento | Solo para APIs Empresariales Colección de metadatos de enriquecimiento derivados para el usuario. Proporciona losGeolocalización del perfilMetadatos de enriquecimiento. Consulte la documentación de referencia para obtener más información, incluidos los diccionarios de datos JSON. Ejemplo: “derivada”:“ubicaciones”: [“país”:“Estados Unidos”,“país_código”:“EE. UU.”,“localidad”:“Denver”] |
| URL | Cadena de texto | Admite valores nulos. Una URL que el usuario proporciona asociada a su perfil. Ejemplo: “url”:“https://developer.x.com” |
| Descripción | Cadena de caracteres | Nullable. La cadena UTF-8 definida por el usuario que describe su cuenta. Ejemplo: “Descripción”:“La verdadera X API.” |
| protegido | Booleano | Cuando es true, indica que este usuario ha optado por proteger sus Posts. ConsulteAcerca de las publicaciones públicas y protegidas. Ejemplo: “protegido”: true |
| verificado | Booleano | Cuando es true, indica que el usuario tiene una cuenta verificada. ConsulteCuentas verificadas. Ejemplo: “verificado”: false |
| seguidores_recuento | Int | La cantidad de seguidores que tiene actualmente esta cuenta. En determinadas condiciones de estrés, este campo mostrará temporalmente “0”. Ejemplo: “seguidores_conteo”: 21 |
| amigos_recuento | Int | La cantidad de usuarios a los que esta cuenta sigue (también llamados sus «seguidos»). Bajo ciertas condiciones de sobrecarga, este campo indicará temporalmente «0». Ejemplo: “amigos_recuento”: 32 |
| incluido en la lista_conteo | Int | El número de listas públicas de las que este usuario es miembro. Ejemplo: “en la lista_conteo”: 9274 |
| favoritos_conteo | Int | El número de Posts que este usuario ha marcado con “Me gusta” durante la vida de la cuenta. Se utiliza la ortografía británica en el nombre del campo por razones históricas. Ejemplo: “favoritos_conteo”: 13 |
| estados_recuento | Int | El número de Posts (incluidos los retuits) publicados por el usuario. Ejemplo: “estados_conteo”: 42 |
| creado_en | Cadena de texto | La fecha y hora en UTC en que se creó la cuenta de usuario en X. Ejemplo: “creado_en”:“lun 29 nov 2010 21:18:15 +0000” |
| perfil_banner_url | Cadena de caracteres | La URL basada en HTTPS que apunta a la representación web estándar del banner de perfil que subió el usuario. Al agregar un último segmento de ruta a la URL, es posible obtener distintos tamaños de imagen optimizados para pantallas específicas. Para las variantes de tamaño, consulteImágenes y banners del perfil de usuario. Ejemplo: “perfil_banner_url”:“https://si0.twimg.com/profile_banners/819797/1348102824” |
| perfil_imagen_URL_https | Cadena de texto | Una URL basada en HTTPS que señala a la imagen de perfil del usuario. Ejemplo: “perfil_imagen_url_https”: “https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png” |
| predeterminado_perfil | Booleano | Cuando es true, indica que el usuario no ha modificado el tema ni el fondo de su perfil. Ejemplo: “predeterminado_perfil”: false |
| predeterminado_perfil_imagen | Boolean | Cuando es true, indica que el usuario no ha cargado su propia imagen de perfil y, en su lugar, se usa una imagen predeterminada. Ejemplo: “predeterminado_perfil_imagen”: false |
Atributos descontinuados (deprecated)
| Campo | Tipo | Descripción |
|---|---|---|
| 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 | Deprecated. El valor se establecerá en null. |
| notifications | null | Deprecated. El valor se establecerá en null. |
| profile_location | null | Deprecated. El valor se establecerá en null. |
| contributors_enabled | null | Deprecated. El valor se establecerá en null. |
| profile_image_url | null | Deprecated. 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 | Deprecated. El valor se establecerá en null. |
| profile_background_image_url | null | Deprecated. El valor se establecerá en null. |
| profile_background_image_url_https | null | Deprecated. El valor se establecerá en null. |
| profile_background_tile | null | Deprecated. El valor se establecerá en null. |
| profile_link_color | null | Deprecated. El valor se establecerá en null. |
| profile_sidebar_border_color | null | Deprecated. El valor se establecerá en null. |
| profile_sidebar_fill_color | null | Deprecated. El valor se establecerá en null. |
| profile_text_color | null | Deprecated. El valor se establecerá en null. |
| profile_use_background_image | null | Deprecated. El valor se establecerá en null. |
| is_translator | null | Deprecated. El valor se establecerá en null. |
| is_translation_enabled | null | Deprecated. El valor se establecerá en null. |
| translator_type | null | Deprecated. El valor se establecerá en null. |
Ejemplo de objeto de usuario:
Objetos geográficos enriquecidos nativos
place siempre está presente cuando un Post está etiquetado geográficamente con un lugar. Los Places son ubicaciones específicas y nominales, 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 devolverá una matriz [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 proporciona como una cadena, no como un entero. Ejemplo: “id”:“01a9a39529b27f36” |
| url | String | URL que señala la ubicación de metadatos adicionales de este lugar. Ejemplo: “url”:“https://api.x.com/1.1/geo/id/01a9a39529b27f36.json” |
| place_type | String | El tipo de ubicación representado por este lugar. Ejemplo: “place_type”:“city” |
| name | String | Representación breve y legible para personas del nombre del lugar. Ejemplo: “name”:“Manhattan” |
| full_name | String | Representación completa y legible para personas del nombre del lugar. Ejemplo: “full_name”:“Manhattan, NY” |
| country_code | String | Código de país abreviado del 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 encierra 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 Volume Streams, 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 datos codificados 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 | Collection of 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. Será “Point” para los campos de coordenadas de Post. Ejemplo: “type”: “Point” |
| Campo | Tipo | Descripción |
| coordinates | Collection of 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. Será “Point” para los campos de coordenadas de Post. Ejemplo: “type”: “Point” |
Ubicaciones derivadas
| Campo | Tipo | Descripción |
| derived | objeto locations | 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 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 Entities en objetos de usuario Entities en Mensajes Directos Próximos pasosIntroducción
Las entidades proporcionan metadatos e información contextual adicional sobre el contenido publicado en X. La secciónentities proporciona arreglos de elementos comunes incluidos en los Posts: hashtags, menciones de usuarios, enlaces, tickers bursátiles (símbolos), encuestas de X y medios adjuntos. Estos arreglos son prácticos para los desarrolladores al ingerir Posts, ya que X esencialmente ha preprocesado o preanalizado el cuerpo del texto. En lugar de tener que buscar explícitamente estas entidades en el cuerpo del Post, tu analizador puede ir directamente a esta sección JSON y encontrarlas allí.
Además de facilitar el análisis, la sección entities también ofrece metadatos útiles de valor agregado. Por ejemplo, si estás utilizando el enriquecimiento Enhanced URLs, 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 entidades incluyen el id numérico del usuario, lo cual es útil al realizar solicitudes a muchas X API.
Cada carga útil 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 examinas el JSON de un Post con un cuerpo de “Hello World!” y sin medios adjuntos, 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 medios nativos (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ás descripciones de cada uno de estos objetos de entidad, incluidos diccionarios de data que describen los nombres de los atributos del objeto, sus tipos y una breve descripción. También indicaremos qué operadores de PowerTrack coinciden con estos atributos e incluiremos algunos ejemplos de payloads JSON.
Una colección de entidades comunes que se encuentran en los Posts, incluidas las hashtags, los enlaces y las menciones de usuarios. 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 coinciden con ellos.
| Campo | Tipo | Descripción |
|---|---|---|
| hashtags | Matriz deObjetos de hashtags | Representa los hashtags extraídos del texto del Post. Ejemplo: “hashtags”: [ “índices”: [ 32, 38 ], “texto”:“Node.js” ] |
| contenido multimedia | Matriz deObjetos multimedia | Representa los elementos multimedia subidos con el Post. Ejemplo: “contenido multimedia”: [ “mostrar_url”:“pic.x.com/5J1WJSRCy9”, “expandido_url”:“https://x.com/nolan_test/status/930077847535812610/photo/1”, “id”: 9.300778475358126e17, “id_str”:“930077847535812610”, “índices”: [ 13, 36 ], “contenido multimedia_url”:“http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, “multimedia_url_https”:“https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg” “tamaños”: “miniatura”: “h”: 150, “redimensionar”:“recortar”, “w”: 150 , “grande”: “h”: 1366, “redimensionar”:“encajar”, “w”: 2048 , “medio”: “h”: 800, “cambiar tamaño”:“adaptar”, “w”: 1200 , “pequeño”: “h”: 454, “cambiar el tamaño”:“encajar”, “w”: 680 , “tipo”:“foto”, “url”:“https://t.co/5J1WJSRCy9”, ] |
| URLs | Arreglo deObjetos de URL | Representa las URL incluidas en el texto de un Post. Ejemplo (sin la mejora de Enhanced URLs activada): “URLs”: [ “índices”: [ 32, 52 ], “url”:“http://t.co/IOwBrTZR”, “visualización_URL”:“youtube.com/watch?v=oHg5SJ…”, “ampliado_url”:“http://www.youtube.com/watch?v=oHg5SJYRHA0” ] Ejemplo (con la mejora de Enhanced URLs activada): “URL”: [ “URL”:“https://t.co/D0n7a53c2l”, “ampliada_URL”:“http://bit.ly/18gECvy”, “visualización_url”:“bit.ly/18gECvy”, “desenrollado”: “URL”:“https://www.youtube.com/watch?v=oHg5SJYRHA0”, “estado”: 200, “título”:“Rickroll’D”, “Descripción”:“http://www.facebook.com/rickroll548Mientras haya trolls trolleando, Rick nunca dejará de rodar.” , “índices”: [ 62, 85 ] ] |
| usuario_menciones | Matriz deObjetos de menciones de usuario | Representa a otros usuarios de X mencionados en el texto del Post. Ejemplo: “usuario_menciones”: [ “nombre”:“X API”, “índices”: [ 4, 15 ], “pantalla_nombre”:“xapi”, “id”: 6253282, “id_str”:“6253282” ] |
| símbolos | Matriz deObjetos Symbol | Representa los símbolos, p. ej., $cashtags, incluidos en el texto del Post. Ejemplo: “símbolos”: [ “índices”: [ 12, 17 ], “texto”:“twtr” ] |
| encuestas | Matriz deObjetos de encuestas | Representa las encuestas de X incluidas en el Post. Ejemplo: “encuestas”: [ “opciones”: [ “posición”: 1, “texto”:“Leí la documentación una vez.” , “posición”: 2, “texto”:“Leí la documentación dos veces.” }, “posición”: 3, “texto”:“Releo la documentación una y otra vez.” } ], “fin_fecha y hora”:“Jue May 25 22:20:27 +0000 2017”, “duración_minutos”: 60 ] |
Objeto de hashtag
La secciónentities contendrá un arreglo hashtags que incluye un objeto por cada hashtag presente en el cuerpo del Post, y un arreglo vacío si no hay hashtags.
El operador # de PowerTrack se utiliza para hacer coincidencia con el atributo text. El operador has:hashtags hará coincidencia si hay al menos un elemento en el arreglo.
| Campo | Tipo | Descripción |
| indices | Array of Int | Un arreglo de números 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 de multimedia
La secciónentities contendrá un arreglo media con un único objeto de multimedia si se ha “adjuntado” algún objeto de multimedia al Post. Si no se ha adjuntado multimedia nativa, no habrá un arreglo media en entities. Por las siguientes razones, se debe usar la sección extended_entities para procesar la multimedia nativa del Post:
- El
typede la multimedia siempre indicará “photo”, incluso cuando se adjunte un video o un GIF al Post. - Aunque se pueden adjuntar hasta cuatro fotos, solo la primera aparecerá en la sección
entities.
has:media coincidirá si este arreglo contiene elementos.
| Campo | Tipo | Descripción |
| visualización_url | String | URL del contenido multimedia que se mostrará a los clientes. Ejemplo: “visualización_url”:“pic.x.com/rJC5Pxsu” |
| ampliado_url | Cadena de texto | Una versión ampliada de la pantalla_url. Enlace a la página de visualización de medios. Ejemplo: “expandido_URL”:“http://x.com/yunorno/status/114080493036773378/photo/1” |
| id | Int64 | ID del contenido multimedia expresado como entero de 64 bits. Ejemplo: “id”:114080493040967680 |
| id_str | Cadena de texto | id del contenido multimedia expresado como cadena. Ejemplo: “id_cadena”:“114080493040967680” |
| índices | Matriz de Int | Una matriz de enteros que indica los desplazamientos dentro del texto del Post donde comienza y termina la URL. El primer entero representa la posición del primer carácter de la URL en el texto del Post. El segundo entero representa la posición del primer carácter que no forma parte de la URL y que aparece después de esta (o el final de la cadena si la URL es la última parte del texto del Post). Ejemplo: “índices”:[15,35] |
| contenido multimedia_url | String | Una URL http:// que apunta directamente al archivo de medios cargado. Ejemplo: “medios_url”:“http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg” Para medios en los Mensajes Directos, media_urles la misma URL HTTPS quemedia_url_httpsy se debe acceder firmando una solicitud con el token de acceso del usuario mediante OAuth 1.0A.No es posible acceder a imágenes mediante una sesión autenticada de x.com. Visitaesta páginapara aprender a tener en cuenta estos cambios recientes. No puedes insertar estas imágenes directamente en una página web. ConsultarFormato de URL de medios de fotosobre cómo dar formato a una foto’la URL de s, como media_url_https, según la información disponibletamaños. |
| multimedia_URL_https | String | Una URL https:// que apunta directamente al archivo multimedia subido, para insertarla en páginas https. Ejemplo: “contenido multimedia_url_https”:“https://p.twimg.com/AZVLmp-CIAAbkyy.jpg” Para archivos multimedia en Mensajes Directos, media_url_httpsdebe accederse firmando la solicitud con el token de acceso del usuario mediante OAuth 1.0a.No es posible acceder a las imágenes mediante una sesión autenticada en x.com. Visiteesta páginapara saber cómo tener en cuenta estos cambios recientes. No puedes insertar estas imágenes directamente en una página web. VerFormato de URL de medios de fotossobre cómo formatear una foto’la URL de s, como media_url_https, según lo disponibletamaños. |
| tamaños | Objeto Size | Objeto que muestra los tamaños disponibles del archivo multimedia. Ejemplo: “tamaños”: “miniatura”: “h”: 150, “cambiar tamaño”:“recortar”, “w”: 150 }, “grande”: “h”: 1366, “cambiar tamaño”:“encajar”, “w”: 2048 }, “medio”: “h”: 800, “cambiar tamaño”:“encajar”, “w”: 1200 }, “pequeña”: “h”: 454, “cambiar el tamaño”:“encajar”, “w”: 680 } } } ConsultarFormato de URL de medios de fotossobre cómo formatear una foto’la URL de s, como media_url_https, según la información disponibletamaños. |
| origen_estado_id | Int64 | Admite null. Para los Posts que contienen contenido multimedia originalmente asociado a otro Post, este id apunta al Post original. Ejemplo: “fuente_estado_id”: 205282515685081088 |
| origen_estado_id_str | Int64 | Admite nulos. Para Posts que contienen contenido multimedia originalmente asociado a otro Post, este id basado en cadena apunta al Post original. Ejemplo: “origen_estado_id_str”:“205282515685081088” |
| tipo | Cadena de texto | Tipo de medio subido. Los tipos posibles incluyen foto, video y animado_GIF. Ejemplo: “tipo”:“foto” |
| url | Cadena de texto | URL encapsulada para el enlace de medios. Esto corresponde a la URL incrustada directamente en el texto sin procesar del Post, y a los valores del parámetro indices.índicesparámetro. Ejemplo:“url”:“http://t.co/rJC5Pxsu” |
Objetos de tamaño de medios
Objeto de tamaños
| Campo | Tipo | Descripción |
| thumb | Objeto de tamaño | Información para una versión del medio en tamaño miniatura. Ejemplo: “thumb”:“h”:150, “resize”:“crop”, “w”:150} Las fotos en tamaño miniatura se limitarán a rellenar un área de 150x150 y se recortarán. |
| large | Objeto de tamaño | Información para una versión del medio en tamaño grande. Ejemplo: “large”:“h”:454, “resize”:“fit”, “w”:680} Las fotos en tamaño pequeño se limitarán a ajustarse dentro de un área de 680x680. |
| medium | Objeto de tamaño | Información para una versión del medio en tamaño mediano. Ejemplo: “medium”:“h”:800, “resize”:“fit”, “w”:1200} Las fotos en tamaño mediano se limitarán a ajustarse dentro de un área de 1200x1200. |
| small | Objeto de tamaño | Información para una versión del medio en tamaño pequeño. Ejemplo: “small”:“h”:1366, “resize”:“fit”, “w”:2048} Las fotos en tamaño grande se limitarán a ajustarse dentro de un área 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 | Alto en píxeles de este tamaño. Ejemplo: “h”:150 |
| resize | String | Método de redimensionamiento usado para obtener este tamaño. Un valor de fit indica que el contenido multimedia se redimensionó para ajustarse a una dimensión, manteniendo su relación de aspecto original. Un valor de crop indica que el contenido multimedia 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 pueden cargarse por sí solos, lo que hará que se cargue la variante mediana de forma predeterminada. Sin embargo, cuando sea posible, es preferible proporcionar una URL de medio de foto completamente formateada.
Hay tres partes de una URL de medio de foto:
| Base URL | La URL base es la URL del medio sin la extensión de archivo. Por ejemplo: “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, La URL base es entonces: https://pbs.twimg.com/media/DOhM30VVwAEpIHq |
| Format | El formato es el tipo de archivo de la imagen. Los formatos posibles son jpg o png, que se indican como la extensión de la URL del medio. Por ejemplo: “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, El formato es entonces: jpg |
| Name | El nombre es el nombre del campo del tamaño que se 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 nombre al cargar la foto en tamaño grande sería: large |
| Formato heredado | El formato heredado está obsoleto. Todas las cargas de contenido fotográfico deben migrarse al formato moderno. <base_url>.<format>:<name> Por ejemplo: https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg:large |
| Formato moderno | 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 contenido fotográfico 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 de consulta de la URL de contenido fotográfico están en orden alfabético. Si en el futuro se añadieran elementos de consulta adicionales, deberá mantenerse ese orden alfabético. Por ejemplo, si existiera un hipotético elemento de consulta llamado preferred_format, iría después de format y name en la cadena de consulta. |
Objeto URL
La secciónentities contendrá un arreglo urls con un objeto por cada enlace incluido en el cuerpo del Post, e incluirá 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 coincidencia con el atributo expanded_url. Si utiliza el Expanded URL enrichment, el operador url: se usa para hacer coincidencia con el atributo unwound.url (URL completamente desenrollada). Si utiliza el Enhanced URL enrichment, los operadores url_title: y url_description: se usan para hacer coincidencia con los atributos unwound.title y unwound.description.
| Campo | Tipo | Descripción |
| 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 representa los desplazamientos 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 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 formato del Post, y a los valores del parámetro indices. Ejemplo: “url”:“https://t.co/yzocNFvJuL” |
unwound:
| Campo | Tipo | Descripción |
| url | String | Versión completamente desenrollada 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 desenrollado; un 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á un arreglo user_mentions con un objeto por cada mención de usuario incluida en el cuerpo del Post, y un arreglo vacío si no hay ninguna mención de usuario.
El operador @ de PowerTrack se utiliza para hacer coincidir el atributo screen_name. El operador has:mentions coincidirá si hay al menos un elemento en el arreglo.
| Field | Type | Description |
| 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 | Un arreglo de enteros que representa los desplazamientos dentro del texto del Post donde comienza y termina la referencia al usuario. El primer entero indica la ubicación del carácter ‘@’ de la mención de usuario. El segundo entero indica 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 visible del usuario referenciado. Ejemplo: “name”:“API” |
| screen_name | String | Screen name del usuario referenciado. 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 utiliza para hacer coincidencia en el atributo text. El operador has:symbols coincide si hay al menos un elemento en el arreglo.
| Campo | Tipo | 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á un arreglo polls con un único objeto poll si el Post incluye una encuesta. Si no se incluye ninguna encuesta, no habrá un arreglo polls en la sección entities.
Tenga en cuenta que estos metadatos de encuestas solo están disponibles con las siguientes API Empresarial:
- Flujos por volumen (Decahose)
- Real-time PowerTrack
- X Search APIs (Full-Archive Search y 30-Day Search)
| Campo | Tipo | Descripción |
| options | Array of Option Object | Un arreglo 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 termina 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












http://wapo.st/2w8iwPQ #Testing
En el ejemplo anterior, tanto la URL como el hashtag se vieron afectados. Dado que el hashtag se truncó por completo y la URL se truncó parcialmente, estos faltan en las entidades de nivel superior. También notarás la entidad adicional de nivel superior user_mentions que proviene del prefijo “RT @floodsocial: ” en el campo text.
Sin embargo, el texto del Post y las entidades en retweeted_status reflejan perfectamente el Post original sin truncamiento ni entidades incorrectas; de ahí nuestra recomendación de basarse en el objeto anidado retweeted_status para los Retweets.
Tweets con cita
Los Tweets con cita se introdujeron en 2016 y se diferencian de los Retweets en que cuando “citas” un Post estás agregando contenido nuevo “encima” de un Post compartido. Este contenido nuevo puede incluir casi todo lo que puede tener un Post original, incluidos texto nuevo, hashtags, menciones y URL. Los Tweets con cita pueden contener contenido multimedia nativo (fotos, videos y GIF) y aparecerán bajo el objeto entities. Dado que se pueden agregar entidades de X, es probable que las entidades de la cita sean diferentes de las entidades originales. En este ejemplo, se colocaron una nueva URL y un hashtag al final del Tweet con cita. Este Post, https://x.com/FloodSocial/status/907983973225160704, tiene el siguiente texto del Post: extraño e igualmente trágico cuando las islas se inundan… pruebas transatlánticas de tweets con cita | @thisuser @thatuserhttp://bit.ly/2vMMDuu #testing En este caso, las entidades de nivel superior no reflejan los detalles de la cita. Sin embargo, el texto del Post y las entities en extended_tweet reflejan perfectamente el Tweet con cita sin truncamiento ni entidades incorrectas; por lo tanto, recomendamos confiar en el objeto anidado extended_tweet para los Tweets con cita.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 Próximos pasosIntroducción
extended_entities. El objeto extended_entities contiene un único arreglo media de objetos media (consulta la sección entities para su diccionario de datos). No se incluyen otros tipos de entidad, como hashtags y enlaces, en la sección extended_entities. El objeto media en 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. Para las fotos, se pueden adjuntar hasta cuatro. Para los videos y los GIFs, 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 4 fotos, es la fuente de metadatos preferida para contenido multimedia nativo.
Ejemplos de Posts y cargas útiles JSON
A continuación se muestra la sección
entities para este Post:
extented_entities para este Post:
Publicación con video nativo
video_info se reemplazará por un objeto additional_media_info.
El objeto additional_media_info incluirá información adicional de medios proporcionada por el editor, como title, description y embeddable flag. El contenido de video está disponible únicamente para los 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 haciendo clic en el enlace.
Este es un ejemplo de cómo se verá el objeto extended entities en esta situación:
entities que tiene, incorrectamente, el type configurado en ‘photo’. Nuevamente, se recomienda usar la sección extended_entities para todos los tipos de contenido multimedia nativo, incluidos ‘video’ y ‘animated_gif’.
Publicación con un GIF animado
A continuación se muestran los metadatos de entidades extendidas para esta Publicación con un GIF animado:
Ejemplos de cargas enriquecidas nativas
Publicación
Responder a un Post
Publicación extendida
Publicación con extended_entities
Retweet
Citar Tweet
Cita de Tweet retuiteada
Objetos de datos de Activity Streams Empresarial
¿Te interesa saber más sobre cómo el formato de datos de Activity Streams se mapea al formato de X API v2?
Ten en cuenta: se recomienda encarecidamente usar el formato Enriched Native para las API de datos empresariales.
- 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 de caracteres de 2017.
Objeto de actividad
Diccionario de datos
| Atributo | Tipo | Descripción |
| id | string | Un IRI único para el Post. En más detalle,“tag”es el esquema,“search.x.com”representa el dominio del esquema, y 2005 es el año en que se derivó el esquema. Al almacenar Posts, debe usarse como identificador único o clave primaria. ”id”:“tag:search.x.com,2005:1050118621198921728” |
| tipoDeObjeto | cadena | Tipo de objeto, siempre configurado en”actividad” “tipoDeObjeto”:“actividad” |
| objeto | objeto | Objeto que representa el Post que se está publicando o compartiendo. Para los Retweets, esto contendrá un completo”actividad”, con los campos pertinentes descritos en este esquema. Para las publicaciones originales, esto contendrá un”nota”objeto, con los fields descritos aquí. ”objeto”: “objeto”: “tipoObjeto”:“nota”, “id”:“object:search.x.com,2005:1050118621198921728”, “resumen”:“Para dar espacio a más formas de expresión, ahora contaremos todos los emojis por igual, incluidos los que tienen género y tono de piel t…https://t.co/MkGjXf9aXm”, “enlace”:“http://x.com/API/statuses/1050118621198921728”, “horaDe publicación”:“2018-10-10T20:19:24.000Z” |
| largo_objeto | objeto | Objeto que representa el cuerpo de texto completo cuando el texto del Post supera los 140 caracteres. “largo_objeto”: “cuerpo del mensaje”:“Para dar cabida a más formas de expresión, a partir de ahora contaremos todos los emojis por igual —incluidos los que tienen modificadores de género y de tono de piel 👍🏻👍🏽👍🏿—. Esto ya se refleja en Twitter-Text, nuestra biblioteca de código abierto. \n\n¿Usas Twitter-Text? Consulta la publicación del foro para más detalles:https://t.co/Nx1XZmRCXA”, “pantalla_texto_intervalo”: [ 0, 277 ], “Twitter_entidades”: “hashtags”: [], “URLs”: [ “url”:“https://t.co/Nx1XZmRCXA”, “expandido_URL”:“https://devcommunity.x.com/t/nueva-actualizacion-de-la-biblioteca-twitter-text-recuento-de-caracteres-de-emoji/114607 |
| https://devcommunity.x.com/t/new-update-to-the-twitter-text-library-emoji-character-count/114607”, “mostrar_url”:“devcommunity.com/t/new-update-t…”, “índices”: [ 254, 277 ] ], “usuario_menciones”: [], “símbolos”: [] | ||
| mostrar_texto_intervalo | matriz | si el texto del Post supera los 140 caracteres. “pantalla_texto_intervalo”: [ 0, 142 ] |
| verbo | string | El tipo de acción que realiza el usuario. Posts, “post” Retweets, “share” Posts eliminados, “delete” El verbo es la forma adecuada de distinguir entre un Tweet y un Retweet auténtico. Sin embargo, esto solo aplica a retweets auténticos, y no a Tweets modificados o con cita, que no usan la funcionalidad de Retweet de X. Para una descripción de los verbos de AS haz clic aquí. En el caso de las eliminaciones, tenga en cuenta que solo se incluirá un número limitado de fields, como se muestra en el siguiente ejemplo de carga útil. ”verbo”:“Post” |
| postedTime | fecha (ISO 8601) | La hora en que ocurrió la acción; p. ej., la hora en que se publicó el Post. “postedTime”:“2018-10-10T20:19:24.000Z” |
| generador | objeto | Objeto que representa la utilidad empleada para publicar el Post. Contendrá el nombre (“displayName”) y un vínculo (“vínculo”) para la App de origen que genera el Post. ”generador”: “displayName”:“Cliente web de X”, “vínculo”:“http://x.com” |
| proveedor | objeto | Un objeto JSON que representa al proveedor de la actividad. Este incluirá un objectType (“servicio”), el nombre del proveedor (“nombreVisible”), y un enlace al proveedor’sitio web del proveedor (“vínculo”). “proveedor”: “tipoDeObjeto”:“servicio”, “displayName”:“X”, “vínculo”:“http://www.x.com” |
| vínculo | string | Un enlace permanente para la Post. ”vínculo”:“http://x.com/API/statuses/1050118621198921728” |
| cuerpo del mensaje | string | El texto del Post. En los Retweets, tenga en cuenta que X modifica el valor de body en el nivel raíz al agregar”RT @username”al principio, y truncando el texto original y añadiendo puntos suspensivos al final. Por lo tanto, para los Retweets, tu App debe consultar object.body para asegurarse de que está extrayendo el texto sin modificar de la Post original (que se está retuiteando). “cuerpo del mensaje”:“Con Cardiff, Crystal Palace y Hull City ascendiendo desde el Championship a la Premier League, el final promete una gran lucha por el descenso.” |
| visualización_texto_intervalo | matriz | Describe el rango de caracteres dentro del cuerpo del texto que señala el Post mostrado. Los Posts con @menciones al inicio comenzarán en un valor mayor que 0 y los Posts con medios adjuntos o que se extiendan más allá de 140 caracteres indicarán el área de visualización_texto_intervalo en long_objeto. “pantalla_texto_intervalo”: [ 14, 42 ] o ”largo_objeto”: “visualización_texto_intervalo”: [ 0, 277 ]… |
| actor | objeto | Un objeto que representa al usuario de X que realizó la publicación. El objeto Actor se refiere a un usuario de X y contiene todos los metadatos relevantes de ese usuario. Consulta detalles del objeto actor |
| enRespuestaA | objeto | Objeto JSON que hace referencia al Post al que se está respondiendo, si corresponde. Contiene un enlace al Post. ”inReplyTo”: “vínculo”:“http://x.com/GOP/statuses/349573991561838593” |
| ubicación | objeto | Un objeto JSON que representa el “Place” de X donde se creó el Post. Este es un objeto que se transmite desde la plataforma de X. Consulta objeto de ubicación |
| X (antes Twitter)_entidades | objeto | El objeto entities de X’formato de datos de X que contiene listas de URL, 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 las entidades que extrae en el nivel raíz. Por lo tanto, para los Retweets, su App debería consultar object.twitter_entidades para asegurarte de que usas valores sin truncar. Ver X_detalles del objeto de entidades |
| Twitter_ampliado_entidades | objeto | Un objeto de X’formato de datos nativo de s que contiene”contenido multimedia”. Esto estará presente en cualquier Post donde el_el objeto entities contiene data presente en el”contenido multimedia”campo, e incluirá varias fotos cuando estén presentes en la publicación. Ten en cuenta que esta es la ubicación correcta para obtener la información de medios en publicaciones con varias fotos. Varias fotos se representan mediante objetos JSON separados por comas dentro de la”contenido multimedia”matriz. Verdetalles del objeto twitter_extended_entities |
| gnip | objeto | Objeto agregado al payload de la actividad para indicar las reglas de coincidencia y añadir datos enriquecidos según los enriquecimientos activos en el stream o en el producto. Consultedetalles del objeto Gnip |
| editar_historial | Objeto | Identificadores únicos que indican todas las versiones de un Post. Para los Posts sin ediciones, habrá un id. Para los Posts con historial de ediciones, habrá varios id, ordenados de forma ascendente para reflejar el orden de las ediciones, con la versión más reciente en la última posición del array. Los id de Post pueden usarse para rehidratar y ver versiones anteriores de un Post. Ejemplo: Editar_historia”: “inicial_Tweet_id”:“1283764123” “editar_Tweet_ids”: [“1283764123”,“1394263866”] |
| editar_controles | Objeto | Cuando está presente, indica durante cuánto tiempo un Post sigue siendo editable y cuántas ediciones quedan. Los Posts solo se pueden editar durante los primeros 30 minutos tras su creación y hasta cinco veces en total. Los id de Post pueden usarse para reconstruir y ver versiones anteriores de un Post. Ejemplo: “editar_controles”: “editable_hasta_ms”: 123 “ediciones_pendientes”: 3 |
| editable | Booleano | Cuando está presente, indica si un Post era elegible para edición al publicarse. Este campo no es dinámico y no’t cambiará de True a False cuando un Post alcance su límite de tiempo de edición o el número máximo de ediciones. Las siguientes funciones del Post harán que este campo sea false: - El Post está promocionado - La publicación tiene una encuesta - La Post es una respuesta que no forma parte de su propio hilo - El Post es un retuit (ten en cuenta que los Quote Tweets son elegibles para edición) - El Post es de difusión limitada (nullcast) - Publicación de la comunidad - Post de Superfollow - Post colaborativo |
Atributos adicionales de Post
| Atributo | Tipo | Descripción |
|---|---|---|
| twitter_lang | string | |
| favoritesCount | int | Nullable. Indica aproximadamente cuántas veces este Post ha recibido Me gusta por parte de usuarios de X. “favoritesCount”:298 |
| retweetCount | int | Número de veces que este Post ha sido retuiteado. Ejemplo: “retweetCount”:153 |
Atributos obsoletos
| Campo | Tipo | Descripción |
| geo | object | Ubicación de punto donde se creó el Post. |
| twitter_filter_level | string | Campo obsoleto conservado 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": {} } }
Retuit de un Tweet citado:
Objeto extendido
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 definió. No necesariamente el nombre de una persona. Normalmente 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. Único, pero sujeto a cambios. Use id como identificador de usuario siempre que sea posible. Normalmente con 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 con 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. Consulte About Public and Protected Posts. Ejemplo: “protected”: true |
| verified | Boolean | Cuando es true, indica que el usuario tiene una cuenta verificada. Consulte Verified Accounts. Ejemplo: “verified”: false |
| followersCount | 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 |
| friendsCount | Int | El número de usuarios a los que esta cuenta sigue (también llamados “followings”). Bajo ciertas condiciones de estrés, este campo indicará temporalmente “0”. Ejemplo: “friends_count”: 32 |
| listedCount | Int | El número de listas públicas de las que este usuario es miembro. Ejemplo: “listed_count”: 9274 |
| favoritesCount | Int | El número de Posts que a este usuario le han gustado durante la vida de la cuenta. Se usa la ortografía británica en el nombre del campo por motivos históricos. Ejemplo: “favourites_count”: 13 |
| statusesCount | Int | El número 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 en desuso (obsoletos)
| Campo | Tipo | 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 de ubicación
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 | 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 abreviado del país que contiene este lugar. Ejemplo: “countryCode”: “US” |
| country | String | Nombre del país que contiene este lugar. Ejemplo: “country”: “United States” |
objetos derivados de profileLocations
| Campo | Tipo | Descripción |
| address | object | Dentro del objeto de ubicación profileLocation del objeto gnip. Dirección de la ubicación derivada mediante el enriquecimiento geográfico del perfil. El nivel de granularidad variará. “address”: { ** “country”: “United States”, “countryCode”: “US”, “locality”: “Providence”, “region”: “Rhode Island”, “subRegion”: “Providence County” }** |
| geo | object | Dentro del objeto de ubicación profileLocation del 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
twitter_entities utiliza el mismo formato y diccionario de datos que el del formato enriquecido nativo, tal como se muestra en el objeto de entidades aquí.
Ejemplo:
Objeto de entidades extendidas de X
twitter_extended_entities utiliza el mismo formato y diccionario de datos que se muestran en el formato enriquecido nativo objeto extended_entities aquí.
Ejemplo:
Objeto Gnip
Diccionario de datos
| Campo | Tipo | Descripción |
| matching_rules | array | Contiene una matriz de objetos de reglas de coincidencia que indican la regla con la que coincide la actividad. “matching_rules”: [ ** { “tag”: null, “id”:** 1026514022567358500**, “id_str”:** “1026514022567358464” ** } ]** |
| urls | array | Contiene una matriz de enlaces presentes en 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 de 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 Activity Streams
twitter_extended_entities
Cronología de metadatos de Tweets
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 de uso y las convenciones 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, con un conjunto completo de APIs. Las APIs siempre han sido un pilar de la red de X. La primera API apareció poco después del lanzamiento de X. Cuando se introdujo por primera vez el etiquetado geográfico de Posts en 2009, se habilitó a través de una Geo API (y más tarde la posibilidad de “etiquetar geográficamente” un Post se integró en la interfaz de usuario de X.com). Hoy, 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 todos los Posts disponibles públicamente: Historical PowerTrack y la Full-Archive Search API. Ambas APIs ofrecen un conjunto de operadores para consultar y recopilar Posts de interés. Estos operadores coinciden con una variedad de atributos asociados a 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 API para hacer coincidir 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 con los que hacer coincidencia, más eficaces podrán ser sus filtros históricos de PowerTrack. A continuación, presentaremos algunos conceptos clave que preparan el terreno para entender cómo las actualizaciones en los metadatos de los Posts afectan a la detección de su señal de datos de interés.Conceptos clave**
De convenciones de usuarios a objetos de primera clase en X
Metadatos de Post, mutabilidad, actualizaciones y vigencia
Contenido multimedia “nativo”
has:videos, has:images y has:media. Estos solo coinciden con contenido multimedia compartido mediante funciones de X. Para coincidir con otro contenido multimedia alojado fuera de la plataforma de X, deberás usar operadores que coincidan con metadatos de 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, ha evolucionado 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 manera fundamental el comportamiento de los usuarios, el contenido JSON de los Posts, los operadores de consulta o los tres. Si vemos a X como una plataforma de API, los siguientes eventos en cierta medida afectaron los payloads JSON usados para codificar los Posts. A su vez, esos detalles JSON influyen en cómo las API históricas de X hacen coincidir los elementos.
Ten en cuenta que esta cronología es generalmente precisa, aunque no exhaustiva.
2006
- Octubre
- @replies se convierte en una convención.
- Los cashtags pasaron a ser enlaces clicables y buscables en junio de 2012.
- Noviembre - Se introducen los Favoritos.
2007
- Enero: las @replies se convierten en 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 beta de Retweet con “Via @” antepuesto al cuerpo del Post.
- Junio: se introducen las cuentas verificadas.
- Agosto: los Retweets pasan a ser un objeto de primera clase con el patrón “RT @” y el nuevo metadato
retweet_status. - Octubre: se lanza la función de Listas.
- Noviembre: se lanza la Post Geotagging API, proporcionando el primer método para que los usuarios compartan su ubicación mediante apps de terceros.
2010
- Junio: se presentó X Places para geoetiquetar Posts.
- Agosto: se lanzó el botón de 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 introdujeron las fotos nativas.
2012
- Junio: los $Cashtags pasan a ser enlaces en los que se puede hacer clic y buscar.
2014
- Marzo: Etiquetado de fotos y soporte para hasta cuatro fotos. Se introdujo la metadata de X Entities en formato Extended.
- Abril: Los emojis cuentan con soporte nativo en la interfaz de X. Los emojis se usaban comúnmente en los Posts desde al menos 2008.
2015
- Abril: Un cambio en el diseño de la interfaz de usuario de los Posts de X dio como resultado menos Posts con geolocalización.
- Octubre: Se introdujeron las encuestas de X. Originalmente, las encuestas admitían dos opciones con un período de votación de 24 horas. En noviembre, pasaron 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 - GIFs con búsqueda alojados de forma nativa en el compositor de Post.
- Mayo - “Haciendo más con 140” (dmw140) anunciado, con planes para nuevas formas de manejar las respuestas y los medios adjuntos con respecto al límite de 140 caracteres de un Post.
- Junio - Compatibilidad nativa con video
- Junio - Retweets citados disponibles de forma general.
- Junio - Stickers introducidos para añadir a las fotos.
- Septiembre - ‘Adjuntos nativos’ introducidos, con la URL final sin contar dentro de los 140 caracteres (“dmw140, parte 1”).
2017
- Febrero: los metadatos de X Poll se incluyen en los metadatos de Post (solo en formato nativo enriquecido).
- Abril: se presentan las “Respuestas simplificadas”, con las cuentas a las que se responde sin contar para el límite de 140 caracteres (“dmw140, parte 2”).
- Mayo: actualizaciones por el GDPR: user.time_zone se establece en null, user.utc_offset se establece en null, user.profile_background_image_url se establece en el valor predeterminado
- Junio: actualización de los cambios en el formato de quoteTweet
- 29 de septiembre: la capacidad de editar Posts se despliega para un pequeño grupo de prueba. Los metadatos de Post editado se agregan al objeto Post cuando corresponda. Esto incluye los objetos edit_history y edit_controls. Estos metadatos no se devolverán para Posts creados antes de que se añadiera 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 Edit Posts
lang:, que se utiliza para hacer coincidir Posts en un idioma específico. X ofrece un servicio de clasificación de idioma (con compatibilidad para más de 50 idiomas), y las X API 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 coincidirá con mensajes de Post clasificados como español.
La información de la cronología también puede ayudar a interpretar mejor los Post data recibidos. Supongamos que investigas el intercambio de contenido sobre los Juegos Olímpicos de Verano de 2008 y 2012. Si aplicas solo el operador is:retweet para coincidir con Retweets, en 2008 no habría datos que coincidan. 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 del idioma de los Posts son ejemplos de atributos de Post con una larga historia y muchos detalles de producto. A continuación, hablaremos con más detalle de estas y otras clases de atributos importantes para la coincidencia y la comprensión de X Data.
Reconocer 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 ese año, los usuarios compartían enlaces a videos alojados en otros sitios, pero en 2015, X incorporó nuevas funciones de “compartir video” directamente en la plataforma. Para encontrar esos Posts anteriores de interés, deberías incluir una cláusula de regla como url:"youtube.com".
Ten en cuenta que, con las Search APIs, hubo casos en los que se “rellenaron” metadatos de forma retroactiva cuando se reconstruyó el índice. Un buen ejemplo son los cashtag en 2015, se reconstruyó el índice de Search y, en el proceso, la entidad del símbolo se extrajo de todos los cuerpos de los Posts, incluso a principios de 2006, cuando $ se usaba principalmente como jerga: “I hope it $oon!”.
Identificar y filtrar 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, es necesario contar con dos estrategias para detectar (o no detectar) Retweets. Antes de agosto de 2009, se debe revisar el propio mensaje del Post y buscar coincidencias exactas con el patrón “RT @”. Para los periodos posteriores a agosto de 2009, está disponible el operador is:retweet.
Clasificaciones de idioma de Post
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.
Georreferenciación de Posts
- Referencias geográficas en el contenido de un Post
- Posts geotagueados por el usuario
- Ubicación «principal» del perfil de la cuenta establecida por el usuario