Consultez nos guides de comparaison :
X API : Dictionnaire des données Enterprise
Introduction
Enterprise
Les Posts sont l’unité de base atomique de tout ce qui concerne X. Toutes les X API qui renvoient des Posts fournissent ces données encodées en JavaScript Object Notation (JSON). Le JSON repose sur des paires clé‑valeur, avec des attributs nommés et des valeurs associées. Les objets Post récupérés via l’API incluent la « mise à jour de statut » d’un utilisateur X, mais les Retweets, les réponses et les Tweets cités sont également des objets Post. Si un Post est lié à un autre Post, en tant que Retweet, réponse ou Tweet cité, chacun sera identifié ou intégré dans l’objet Post. Même le Post le plus simple, dans le format de données natif de X, comportera des objets JSON imbriqués pour représenter d’autres attributs d’un Post, tels que l’auteur, les utilisateurs mentionnés, le lieu balisé, les hashtags, les symboles cashtag, les médias ou les liens URL. Lorsque vous travaillez avec des données X, il s’agit d’un concept important à comprendre. Le format des données de Post que vous recevrez de la X API dépend du type de Post reçu, de la X API utilisée et des paramètres de format.
Les endpoints Enterprise qui renvoient des objets Post ont été mis à jour pour fournir les metadata nécessaires à la compréhension de l’historique des modifications du Post. Pour en savoir plus sur ces metadata, consultez la page “Modifier des Posts”.
Dans le format natif X, la charge utile JSON comprendra des attributs de niveau racine et des objets JSON imbriqués (représentés ici par la notation
{}
):
Formats de données disponibles
Veuillez noter : il est fortement recommandé d’utiliser le format Enriched Native pour les API de données Enterprise.Les API de données Enterprise délivrent des données dans deux formats différents. Le format Enterprise le plus proche du format natif Standard v1.1 est Enriched Native. L’ancien format de données Enterprise est Activity Streams, initialement implémenté et utilisé par Gnip comme format normalisé pour X et d’autres fournisseurs de données de médias sociaux à l’époque. Bien que ce format soit toujours disponible, X n’a investi dans de nouvelles fonctionnalités et évolutions que pour le format Enriched Native depuis 2017. Le format Enriched Native est conforme à son appellation : il inclut des objets natifs X ainsi que des enrichissements supplémentaires disponibles pour les produits de données Enterprise, tels que les metadata de déroulage d’URL, le profil géographique, la poll metadata et des métriques d’engagement supplémentaires.
- Le format Enriched Native inclut toutes les nouvelles metadata depuis 2017, telles que la poll metadata, ainsi que des métriques supplémentaires comme reply_count et quote_count.
- Le format Activity Streams n’a pas été mis à jour avec de nouvelles metadata ou enrichissements depuis la mise à jour du nombre de caractères en 2017.
- Expanded and enhanced URLs enrichment
- Matching rules enrichment
- Poll metadata enrichment
- Profile geo enrichment
Comparaison des objets selon le format de données
Natif enrichi | Activity Streams |
---|---|
Lien Objet Post | Lien Objet Activity |
Lien Objet utilisateur | Lien Objet Actor |
Lien Objet Entities | Lien Objet X entities |
Lien Objet Extended entities | Lien Objet X extended entities |
Lien Objet Geo | Lien Objet Location |
n/a | Lien Objet Gnip |
Bonnes pratiques d’analyse
- Le JSON de X est encodé en UTF‑8.
- Les analyseurs doivent tolérer sans difficulté les variations dans l’ordre des fields. Il faut supposer que le JSON de Post est servi comme un hash non ordonné de data.
- Les analyseurs doivent tolérer l’ajout de « nouveaux » fields.
- Les analyseurs JSON doivent tolérer les fields « manquants », car tous les fields n’apparaissent pas dans tous les contextes.
- Il est généralement acceptable de considérer qu’un field nul, un ensemble vide et l’absence d’un field sont équivalents
Objets de données enrichis natifs Enterprise
Objet Tweet Native Enriched
Vous souhaitez en savoir plus sur la manière dont le format de données Native Enriched correspond au format X API v2 ? Consultez notre guide comparatif : Native Enriched comparé à X API v2
Objet Post
id
, created_at
et text
. Les objets Post incluent également des objets imbriqués comme user
, entities
et extended_entities
. Ils peuvent aussi contenir d’autres objets Post imbriqués tels que retweeted_status, quoted_status et extended_tweet. Le format natif enrichi inclut en outre un objet matching_rules.
Dictionnaire des données X
Attribut | Type | Description |
---|---|---|
created_at | String | Heure UTC de création de ce Post. Exemple : “created_at” : “Wed Oct 10 20:19:24 +0000 2018” |
id | Int64 | Représentation entière de l’identifiant unique de ce Post. Ce nombre dépasse 53 bits et certains langages de programmation peuvent rencontrer des difficultés ou des défauts silencieux lors de son interprétation. L’utilisation d’un entier signé 64 bits pour stocker cet identifiant est sûre. Utilisez id_str pour récupérer l’identifiant en toute sécurité. Consultez ID X pour plus d’informations. Exemple :“id” : 1050118621198921728 |
id_str | String | Représentation sous forme de chaîne de l’identifiant unique de ce Post. Les implémentations doivent utiliser cette valeur plutôt que l’entier volumineux dans id . Exemple :“id_str” : “1050118621198921728” |
text | String | Texte UTF-8 réel de la mise à jour de statut. Consultez X-text pour plus de détails sur les caractères actuellement considérés comme valides. Exemple : “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 | Utilitaire utilisé pour publier le Post, sous forme de chaîne formatée HTML. Les Posts provenant du site web X ont une valeur source web .Exemple : “source” : “X Web Client” |
truncated | Boolean | Indique si la valeur du paramètre text a été tronquée, par exemple suite à un retweet dépassant la limite de longueur de texte original du Post de 140 caractères. Le texte tronqué se termine par des points de suspension, comme ceci ... Puisque X rejette désormais les Posts longs au lieu de les tronquer, la grande majorité des Posts aura cette valeur définie sur false . Notez que bien que les retweets natifs puissent avoir leur propriété text de niveau supérieur raccourcie, le texte original sera disponible sous l’objet retweeted_status et le paramètre truncated sera défini sur la valeur du statut original (dans la plupart des cas, false ). Exemple :“truncated” : true |
in_reply_to_status_id | Int64 | Nullable. Si le Post représenté est une réponse, ce champ contiendra la représentation entière de l’ID du Post original. Exemple : “in_reply_to_status_id” : 1051222721923756032 |
in_reply_to_status_id_str | String | Nullable. Si le Post représenté est une réponse, ce champ contiendra la représentation sous forme de chaîne de l’ID du Post original. Exemple : “in_reply_to_status_id_str” : “1051222721923756032” |
in_reply_to_user_id | Int64 | Nullable. Si le Post représenté est une réponse, ce champ contiendra la représentation entière de l’ID de l’auteur du Post original. Il ne s’agira pas nécessairement toujours de l’utilisateur directement mentionné dans le Post. Exemple : “in_reply_to_user_id” : 6253282 |
in_reply_to_user_id_str | String | Nullable. Si le Post représenté est une réponse, ce champ contiendra la représentation sous forme de chaîne de l’ID de l’auteur du Post original. Il ne s’agira pas nécessairement toujours de l’utilisateur directement mentionné dans le Post. Exemple : “in_reply_to_user_id_str” : “6253282” |
in_reply_to_screen_name | String | Nullable. Si le Post représenté est une réponse, ce champ contiendra le nom d’écran de l’auteur du Post original. Exemple : “in_reply_to_screen_name” : “xapi” |
user | Objet utilisateur | L’utilisateur qui a publié ce Post. Consultez le dictionnaire de données utilisateur pour la liste complète des attributs. Exemple mettant en évidence certains attributs : { “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. Représente la localisation géographique de ce Post telle que rapportée par l’utilisateur ou l’application cliente. Le tableau de coordonnées interne est formaté comme geoJSON (longitude d’abord, puis latitude). Exemple : “coordinates”: <br/> “coordinates”: [ -75.14310264, 40.05701649 ], “type”:“Point” } |
place | Places | Nullable Lorsque présent, indique que le Post est associé (mais pas nécessairement originaire) d’un lieu. Exemple : “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 | Ce champ n’apparaît que lorsque le Post est un Tweet avec citation. Ce champ contient la valeur entière de l’ID de Post du Tweet cité. Exemple : “quoted_status_id”:1050119905717055488 |
quoted_status_id_str | String | Ce champ n’apparaît que lorsque le Post est un Tweet avec citation. Il s’agit de la représentation sous forme de chaîne de l’ID de Post du Tweet cité. Exemple : “quoted_status_id_str”:“1050119905717055488” |
is_quote_status | Boolean | Indique s’il s’agit d’un Tweet avec citation. Exemple : “is_quote_status”:false |
quoted_status | Post | Ce champ n’apparaît que lorsque le Post est un Tweet avec citation. Cet attribut contient l’objet Post du Post original qui a été cité. |
retweeted_status | Post | Les utilisateurs peuvent amplifier la diffusion de Posts créés par d’autres utilisateurs en effectuant un Retweet. Les Retweets peuvent être distingués des Posts classiques par l’existence d’un attribut retweeted_status . Cet attribut contient une représentation du Post original qui a été retweeté. Notez que les retweets de retweets n’affichent pas les représentations du retweet intermédiaire, mais seulement le Post original. (Les utilisateurs peuvent également annuler un retweet qu’ils ont créé en supprimant leur retweet.) |
quote_count | Integer | Nullable. Indique approximativement combien de fois ce Post a été cité par les utilisateurs X. Exemple : “quote_count”:33 Remarque : Cet objet n’est disponible qu’avec les produits de niveau Premium et Enterprise. |
reply_count | Int | Nombre de fois que ce Post a reçu une réponse. Exemple : “reply_count”:30 Remarque : Cet objet n’est disponible qu’avec les produits de niveau Premium et Enterprise. |
retweet_count | Int | Nombre de fois que ce Post a été retweeté. Exemple : “retweet_count”:160 |
favorite_count | Integer | Nullable. Indique approximativement combien de fois ce Post a été liké par les utilisateurs X. Exemple : “favorite_count”:295 |
entities | Entities | Entités qui ont été extraites du texte du Post. Voir également Entities in X Objects. Exemple : “entities”: <br/> “hashtags”:[], “urls”:[], “user_mentions”:[], “media”:[], “symbols”:[] “polls”:[] } |
extended_entities | Extended Entities | Lorsqu’entre une et quatre photos natives ou une vidéo ou un GIF animé sont présents dans le Post, contient un tableau de metadata ‘media’. Ceci est également disponible dans les Tweets avec citation. Voir également Entities in X Objects. Exemple : “entities”: <br/> “media”:[] } |
favorited | Boolean | Nullable. Indique si ce Post a été liké par l’utilisateur authentifié. Exemple : “favorited”:true |
retweeted | Boolean | Indique si ce Post a été retweeté par l’utilisateur authentifié. Exemple : “retweeted”:false |
possibly_sensitive | Boolean | Nullable. Ce champ indique que le contenu peut être reconnu comme sensible. L’auteur du Post peut sélectionner dans ses propres préférences de compte et choisir « Marquer les médias que vous publiez comme ayant du contenu potentiellement sensible » de sorte que chaque Post créé par la suite ait ce drapeau défini. Ceci peut également être jugé et étiqueté par un agent de support interne X. ”possibly_sensitive”:false |
filter_level | String | Indique la valeur maximale du paramètre filter_level qui peut être utilisée et diffuser encore ce Post. Ainsi, une valeur de medium sera diffusée sur les streams none , low , et medium .Exemple : “filter_level”: “low” |
lang | String | Nullable. Lorsque présent, indique un identifiant de langue BCP 47 correspondant à la langue détectée automatiquement du texte du Post, ou und si aucune langue n’a pu être détectée. Exemple : “lang”: “en” |
edit_history | Object | Identifiants uniques indiquant toutes les versions d’un Post. Pour les Posts sans modifications, il y aura un ID. Pour les Posts avec un historique de modifications, il y aura plusieurs ID, organisés par ordre croissant reflétant l’ordre des modifications, avec la version la plus récente en dernière position du tableau. Les ID de Post peuvent être utilisés pour hydrater et afficher les versions précédentes d’un Post. Exemple : edit_history”: <br/> “initial_tweet_id”: “1283764123” “edit_tweet_ids”: [“1283764123”, “1394263866”] } |
edit_controls | Object | Lorsque présent, indique combien de temps un Post peut encore être modifié et le nombre de modifications restantes. Les Posts ne peuvent être modifiés que pendant les 30 premières minutes après leur création et peuvent être modifiés jusqu’à cinq fois. Les ID de Post peuvent être utilisés pour hydrater et afficher les versions précédentes d’un Post. Exemple : “edit_controls”: <br/> “editable_until_ms”: 123 “edits_remaining”: 3 } |
editable | Boolean | Lorsque présent, indique si un Post était éligible à la modification lors de sa publication. Ce champ n’est pas dynamique et ne basculera pas de True à False lorsqu’un Post atteint sa limite de temps de modification ou son nombre maximum de modifications. Les fonctionnalités de Post suivantes rendront ce champ false : _ Le Post est promu _ Le Post contient un sondage _ Le Post est une réponse de fil non-personnel _ Le Post est un Retweet (notez que les Quote Tweets sont éligibles à la modification) _ Le Post est nullcast _ Post de communauté _ Post Superfollow _ Post collaboratif |
matching_rules | Array of Rule Objects | Présent dans les produits filtrés tels que X Search et PowerTrack. Fournit l’id et le tag associés à la règle qui correspond au Post. Plus d’informations sur les règles de correspondance ici. Avec PowerTrack, plusieurs règles peuvent correspondre à un Post. Exemple : “matching_rules”: ” [<br/> “tag”: “xapi emojis”, “id”: 1050118621198921728, “id_str”: “1050118621198921728” }]“ |
Attributs supplémentaires de Post
Attribute | Type | Description |
---|---|---|
current_user_retweet | Object | Perspectival N’apparaît que pour les méthodes prenant en charge le paramètre include_my_retweet, lorsqu’il est défini sur true. Indique l’ID de Post du Retweet de l’utilisateur (s’il existe) de ce Post. Exemple: “current_user_retweet”: <br/> “id”: 6253282, “id_str”: “6253282” } |
scopes | Object | Un ensemble de paires clé‑valeur indiquant la diffusion contextuelle prévue du Post contenant. Actuellement utilisé par les Promoted Products de X. Exemple: “scopes”:{“followers”:false} |
withheld_copyright | Boolean | Lorsqu’il est présent et défini sur “true”, cela indique que ce contenu a été retenu en raison d’une plainte DMCA. Exemple: “withheld_copyright”: true |
withheld_in_countries | Array of String | Lorsqu’il est présent, indique une liste de codes pays à deux lettres en majuscules à partir desquels ce contenu est retenu. X prend en charge les valeurs non pays suivantes pour ce champ : “XX” - Le contenu est retenu dans tous les pays “XY” - Le contenu est retenu en raison d’une demande DMCA. Exemple: “withheld_in_countries”: [“GR”, “HK”, “MY”] |
withheld_scope | String | Lorsqu’il est présent, indique si le contenu retenu est le “status” ou un “user”. Exemple: “withheld_scope”: “status” |
Attributs obsolètes
Champ | Type | Description |
geo | Objet | Obsolète. Nullable. Utilisez le champ coordinates à la place. Cet attribut obsolète exprime ses coordonnées sous la forme [lat, long], tandis que toutes les autres données de géolocalisation des Post sont exprimées sous la forme [long, lat]. |
Objets Post imbriqués
Tweets citant
Posts étendus
Objet utilisateur natif enrichi
Dictionnaire des données des utilisateurs
Attribut | Type | Description |
---|---|---|
id | Int64 | La représentation entière de l’identifiant unique pour cet utilisateur. Ce nombre est supérieur à 53 bits et certains langages de programmation peuvent avoir des difficultés/défauts silencieux pour l’interpréter. L’utilisation d’un entier signé 64 bits pour stocker cet identifiant est sûre. Utilisez id_str pour récupérer l’identifiant en toute sécurité. Voir X IDs pour plus d’informations. Exemple :“id” : 6253282 |
id_str | String | La représentation sous forme de chaîne de l’identifiant unique pour cet utilisateur. Les implémentations devraient utiliser ceci plutôt que le grand entier, possiblement non-consommable dans id . Exemple :“id_str” : “6253282” |
name | String | Le nom de l’utilisateur, tel qu’il l’a défini. Pas nécessairement le nom d’une personne. Généralement limité à 50 caractères, mais sujet à changement. Exemple : “name” : “API” |
screen_name | String | Le nom d’écran, pseudonyme ou alias avec lequel cet utilisateur s’identifie. Les screen_names sont uniques mais sujets à changement. Utilisez id_str comme identifiant d’utilisateur chaque fois que possible. Généralement d’une longueur maximale de 15 caractères, mais certains comptes historiques peuvent exister avec des noms plus longs. Exemple :“screen_name” : “api” |
location | String | Nullable. L’emplacement défini par l’utilisateur pour le profil de ce compte. Pas nécessairement un emplacement, ni analysable par machine. Ce champ sera occasionnellement interprété de manière approximative par le service de recherche. Exemple : “location” : “San Francisco, CA” |
derived | Arrays of Enrichment Objects | API Enterprise uniquement. Collection de métadonnées d’enrichissement dérivées pour l’utilisateur. Fournit les métadonnées d’enrichissement Profile Geo. Voir la documentation référencée pour plus d’informations, y compris les dictionnaires de données JSON. Exemple : “derived” : “locations” : [“country” : “United States”, “country_code” : “US”, “locality” : “Denver”] |
url | String | Nullable. Une URL fournie par l’utilisateur en association avec son profil. Exemple : “url” : “https://developer.x.com” |
description | String | Nullable. La chaîne UTF-8 définie par l’utilisateur décrivant son compte. Exemple : “description” : “The Real X API.” |
protected | Boolean | Quand true, indique que cet utilisateur a choisi de protéger ses Posts. Voir À propos des Posts publics et protégés. Exemple : “protected” : true |
verified | Boolean | Quand true, indique que l’utilisateur a un compte vérifié. Voir Comptes vérifiés. Exemple : “verified” : false |
followers_count | Int | Le nombre d’abonnés que ce compte a actuellement. Dans certaines conditions de stress, ce champ indiquera temporairement « 0 ». Exemple : “followers_count” : 21 |
friends_count | Int | Le nombre d’utilisateurs que ce compte suit (c’est-à-dire ses « abonnements »). Dans certaines conditions de stress, ce champ indiquera temporairement « 0 ». Exemple : “friends_count” : 32 |
listed_count | Int | Le nombre de listes publiques dont cet utilisateur est membre. Exemple : “listed_count” : 9274 |
favourites_count | Int | Le nombre de Posts que cet utilisateur a aimés au cours de la vie du compte. L’orthographe britannique est utilisée dans le nom du champ pour des raisons historiques. Exemple : “favourites_count” : 13 |
statuses_count | Int | Le nombre de Posts (y compris les retweets) émis par l’utilisateur. Exemple : “statuses_count” : 42 |
created_at | String | La date et heure UTC à laquelle le compte utilisateur a été créé sur X. Exemple : “created_at” : “Mon Nov 29 21:18:15 +0000 2010” |
profile_banner_url | String | L’URL basée sur HTTPS pointant vers la représentation web standard de la bannière de profil téléchargée par l’utilisateur. En ajoutant un élément de chemin final à l’URL, il est possible d’obtenir différentes tailles d’image optimisées pour des affichages spécifiques. Pour les variantes de taille, veuillez voir Images et bannières de profil utilisateur. Exemple : “profile_banner_url” : “https://si0.twimg.com/profile_banners/819797/1348102824” |
profile_image_url_https | String | Une URL basée sur HTTPS pointant vers l’image de profil de l’utilisateur. Exemple : “profile_image_url_https” : “https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png” |
default_profile | Boolean | Quand true, indique que l’utilisateur n’a pas modifié le thème ou l’arrière-plan de son profil utilisateur. Exemple : “default_profile” : false |
default_profile_image | Boolean | Quand true, indique que l’utilisateur n’a pas téléchargé sa propre image de profil et qu’une image par défaut est utilisée à la place. Exemple : “default_profile_image” : false |
Attributs obsolètes (deprecated) et non pris en charge
Champ | Type | Description |
---|---|---|
utc_offset | null | La valeur sera définie sur null. Toujours disponible via GET account/settings |
time_zone | null | La valeur sera définie sur null. Toujours disponible via GET account/settings sous tzinfo_name |
lang | null | La valeur sera définie sur null. Toujours disponible via GET account/settings sous language |
geo_enabled | null | La valeur sera définie sur null. Toujours disponible via GET account/settings. Ce champ doit être à true pour que l’utilisateur actuel puisse joindre des données géographiques lors de l’utilisation de POST statuses/update |
following | null | La valeur sera définie sur null. Toujours disponible via GET friendships/lookup |
follow_request_sent | null | La valeur sera définie sur null. Toujours disponible via GET friendships/lookup |
has_extended_profile | null | Deprecated. La valeur sera définie sur null. |
notifications | null | Deprecated. La valeur sera définie sur null. |
profile_location | null | Deprecated. La valeur sera définie sur null. |
contributors_enabled | null | Deprecated. La valeur sera définie sur null. |
profile_image_url | null | Deprecated. La valeur sera définie sur null. REMARQUE : les images de profil ne sont disponibles qu’en utilisant le champ profile_image_url_https. |
profile_background_color | null | Deprecated. La valeur sera définie sur null. |
profile_background_image_url | null | Deprecated. La valeur sera définie sur null. |
profile_background_image_url_https | null | Deprecated. La valeur sera définie sur null. |
profile_background_tile | null | Deprecated. La valeur sera définie sur null. |
profile_link_color | null | Deprecated. La valeur sera définie sur null. |
profile_sidebar_border_color | null | Deprecated. La valeur sera définie sur null. |
profile_sidebar_fill_color | null | Deprecated. La valeur sera définie sur null. |
profile_text_color | null | Deprecated. La valeur sera définie sur null. |
profile_use_background_image | null | Deprecated. La valeur sera définie sur null. |
is_translator | null | Deprecated. La valeur sera définie sur null. |
is_translation_enabled | null | Deprecated. La valeur sera définie sur null. |
translator_type | null | Deprecated. La valeur sera définie sur null. |
Exemple d’objet utilisateur :
Objets géo natifs enrichis
place
est toujours présent lorsqu’un Post est géolocalisé avec un lieu. Les Places sont des emplacements nommés et spécifiques avec des coordonnées géographiques correspondantes. Lorsque les utilisateurs décident d’attribuer un lieu à leur Post, une liste de X Places candidates leur est présentée. Lors de l’utilisation de l’API pour publier, un X Place peut être associé en spécifiant un place_id lors de la publication. Les Posts associés à des Places ne proviennent pas nécessairement de cet emplacement, mais peuvent également être à propos de cet emplacement.
Les objets geo
et coordinates
ne sont présents (non nuls) que lorsque le Post est associé à un emplacement exact. Si un emplacement exact est fourni, l’objet coordinates
fournit un tableau [long, lat] avec les coordonnées géographiques, et un X Place correspondant à cet emplacement est attribué.
Dictionnaire des données de lieux
Field | Type | Description |
---|---|---|
id | String | ID représentant ce lieu. Notez qu’il est fourni sous forme de chaîne, et non d’entier. Exemple : “id”:“01a9a39529b27f36” |
url | String | URL pointant vers les métadonnées supplémentaires de ce lieu. Exemple : “url”:“https://api.x.com/1.1/geo/id/01a9a39529b27f36.json” |
place_type | String | Type d’emplacement représenté par ce lieu. Exemple : “place_type”:“city” |
name | String | Courte représentation lisible du nom du lieu. Exemple : “name”:“Manhattan” |
full_name | String | Représentation complète et lisible du nom du lieu. Exemple : “full_name”:“Manhattan, NY” |
country_code | String | Code pays abrégé du pays où se situe ce lieu. Exemple : “country_code”:“US” |
country | String | Nom du pays où se situe ce lieu. Exemple : “country”:“United States” |
bounding_box | Object | Boîte englobante de coordonnées qui délimite ce lieu. Exemple : “bounding_box”: “coordinates”: [ [ [ -74.026675, 40.683935 ], [ -74.026675, 40.877483 ], [ -73.910408, 40.877483 ], [ -73.910408, 40.3935 ] ] ], “type”: “Polygon” |
attributes | Object | Avec PowerTrack, les API de recherche 30-Day et Full-Archive, et les Volume Streams, ce hash est nul. Exemple : “attributes”: |
Champ | Type | Description |
coordinates | Array of Array of Array of Float | Une série de points de longitude et de latitude définissant un rectangle qui contiendra l’entité Place à laquelle ce rectangle englobant est lié. Chaque point est un tableau de la forme [longitude, latitude]. Les points sont regroupés dans un tableau par rectangle englobant. Les tableaux de rectangles englobants sont encapsulés dans un tableau supplémentaire pour être compatibles avec la notation de polygone. Exemple: “coordinates”: [ [ [ -74.026675, 40.683935 ], [ -74.026675, 40.877483 ], [ -73.910408, 40.877483 ], [ -73.910408, 40.3935 ] ] ] |
type | String | Le type de data encodé dans la propriété coordinates. Ce sera “Polygon” pour les rectangles englobants et “Point” pour les Posts avec des coordonnées exactes. Exemple: “type”:“Polygon” |
Dictionnaire de données de l’objet Geo
Champ | Type | Description |
coordinates | Collection de nombres à virgule flottante | La longitude et la latitude de l’emplacement du Post, sous forme de collection [latitude, longitude]. Exemple : ** “geo”: “type”:** “Point”, ** “coordinates”: [ 54.27784, -0.41068 ] ** |
type | String | Le type de données encodé dans la propriété coordinates. Il s’agit de « Point » pour les champs de coordonnées d’un Post. Exemple : “type”: “Point” |
Champ | Type | Description |
coordinates | Collection de nombres à virgule flottante | La longitude et la latitude de l’emplacement du Post, sous forme de collection [longitude, latitude]. Exemple : ** “coordinates”: “type”:** “Point”, ** “coordinates”: [ -0.41068, 54.27784 ] ** |
type | String | Le type de données encodé dans la propriété coordinates. Il s’agit de « Point » pour les champs de coordonnées d’un Post. Exemple : “type”: “Point” |
Lieux dérivés
Champ | Type | Description |
derived | objet locations | Lieu dérivé à partir de l’enrichissement géographique du profil “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” ** ] ** |
Exemples :
Entités X
Aller à sur cette page Introduction Objet entities - Objet Hashtag - Objet Media - Objet Media size - Objet URL - Objet mention d’utilisateur - Objet Symbol - Objet Poll Détails sur les Retweets et les Quote Tweets Entities dans les objets utilisateur Entities dans les Messages privés Étapes suivantesIntroduction
entities
fournit des tableaux d’éléments courants inclus dans les Posts : hashtags, mentions d’utilisateurs, liens, tickers boursiers (symboles), sondages X et médias associés. Ces tableaux sont pratiques pour les développeurs lors de l’ingestion de Posts, puisque X a en substance déjà prétraité (pré‑analysé) le corps du texte. Plutôt que de devoir rechercher explicitement ces entités dans le corps du Post, votre analyseur peut se rendre directement à cette section JSON pour les récupérer.
Au‑delà de ces facilités d’analyse, la section entities
fournit également des métadonnées utiles à forte valeur ajoutée. Par exemple, si vous utilisez l’enrichissement Enhanced URLs, les métadonnées d’URL incluent des URL entièrement développées, ainsi que les titres et descriptions des sites web associés. Autre exemple : lorsqu’il y a des mentions d’utilisateurs, les métadonnées des entités incluent l’id utilisateur numérique, utile pour effectuer des requêtes vers de nombreuses X API.
Chaque charge utile JSON de Post inclut une section entities
, avec l’ensemble minimal d’attributs hashtags
, urls
, user_mentions
et symbols
, même si aucune de ces entités ne fait partie du message du Post. Par exemple, si vous examinez le JSON d’un Post dont le corps est « Hello World! » et sans média associé, le JSON du Post inclura le contenu suivant avec des tableaux d’entités contenant zéro élément :
- les entités media et polls n’apparaissent que lorsque ce type de contenu fait partie du Post.
- si vous travaillez avec des médias natifs (photos, vidéos ou GIF), l’objet Extended Entities est la solution recommandée.
Objet Entities
entities
et extended_entities
sont toutes deux constituées de tableaux d’objets d’entité. Vous trouverez ci-dessous des descriptions de chacun de ces objets d’entité, ainsi que des dictionnaires de données décrivant les noms d’attributs de l’objet, leurs types et une brève description. Nous indiquerons également quels opérateurs PowerTrack correspondent à ces attributs et fournirons quelques exemples de charges utiles JSON.
Une collection d’entités courantes présentes dans les Posts, notamment des hashtags, des liens et des mentions d’utilisateurs. L’objet entities
inclut un attribut media
, mais son implémentation dans la section entities
n’est pleinement exacte que pour les Posts contenant une seule photo. Pour tous les Posts comprenant plus d’une photo, une vidéo ou un GIF animé, reportez-vous à la section extended_entities
.
Dictionnaire de données des entités
entities
, des dictionnaires de données pour ces sous-objets, ainsi que les opérateurs qui les font correspondre, seront fournis.
Champ | Type | Description |
---|---|---|
hashtags | Tableau d’Objets Hashtag | Représente les hashtags extraits du texte du Post. Exemple : “hashtags”: [ “indices”: [ 32, 38 ], “text”: “nodejs” ] |
media | Tableau d’Objets Media | Représente les éléments multimédias téléversés avec le Post. Exemple : “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 | Tableau d’Objets URL | Représente les URL incluses dans le texte d’un Post. Exemple (sans l’enrichissement Enhanced URLs activé) : “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” ] Exemple (avec l’enrichissement Enhanced URLs activé) : “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 Tant que les trolls continuent de troller, le Rick ne cessera jamais de rouler.” , “indices”: [ 62, 85 ] ] |
user_mentions | Tableau d’Objets User Mention | Représente les autres utilisateurs X mentionnés dans le texte du Post. Exemple : “user_mentions”: [ “name”: “X API”, “indices”: [ 4, 15 ], “screen_name”: “xapi”, “id”: 6253282, “id_str”: “6253282” ] |
symbols | Tableau d’Objets Symbol | Représente les symboles, c’est-à-dire les $cashtags, inclus dans le texte du Post. Exemple : “symbols”: [ “indices”: [ 12, 17 ], “text”: “twtr” ] |
polls | Tableau d’Objets Poll | Représente les sondages X inclus dans le Post. Exemple : “polls”: [ “options”: [ “position”: 1, “text”: “J’ai lu la documentation une fois.” , “position”: 2, “text”: “J’ai lu la documentation deux fois.” }, “position”: 3, “text”: “Je lis la documentation encore et encore.” } ], “end_datetime”: “Thu May 25 22:20:27 +0000 2017”, “duration_minutes”: 60 ] |
Objet Hashtag
La sectionentities
contient un tableau hashtags
qui comprend un objet pour chaque hashtag présent dans le corps du Post, et un tableau vide si aucun hashtag n’est présent.
L’opérateur PowerTrack #
est utilisé pour faire correspondre l’attribut text
. L’opérateur has:hashtags
correspond s’il y a au moins un élément dans le tableau.
Champ | Type | Description |
indices | Tableau d’entiers | Tableau d’entiers indiquant les positions dans le texte du Post où le hashtag commence et se termine. Le premier entier représente l’emplacement du caractère # dans la chaîne de texte du Post. Le second entier représente l’emplacement du premier caractère après le hashtag. Par conséquent, la différence entre les deux nombres correspond à la longueur du nom du hashtag plus un (pour le caractère « # »). Exemple: “indices”:[32,38] |
text | Chaîne | Nom du hashtag, sans le caractère « # » initial. Exemple: “text”:“nodejs” |
Objet média
La sectionentities
contiendra un tableau media
avec un seul objet média si un objet média a été « ajouté » au Post. Si aucun média natif n’a été ajouté, il n’y aura pas de tableau media
dans entities
. Pour les raisons suivantes, la section extended_entities
doit être utilisée pour traiter les médias natifs du Post :
- Le
type
de média indiquera toujours « photo », même lorsqu’une vidéo ou un GIF est ajouté au Post. - Bien que jusqu’à quatre photos puissent être ajoutées, seule la première sera indiquée dans la section
entities
.
has:media
correspondra si ce tableau est renseigné.
Champ | Type | Description |
display_url | String | URL du média à afficher aux clients. Exemple : “display_url”:“pic.x.com/rJC5Pxsu” |
expanded_url | String | Version développée de display_url. Pointe vers la page d’affichage du média. Exemple : “expanded_url”: “http://x.com/yunorno/status/114080493036773378/photo/1” |
id | Int64 | ID du média exprimé sous forme d’entier 64 bits. Exemple : “id”:114080493040967680 |
id_str | String | ID du média exprimé sous forme de chaîne de caractères. Exemple : “id_str”:“114080493040967680” |
indices | Array of Int | Tableau d’entiers indiquant les positions dans le texte du Post où l’URL commence et se termine. Le premier entier représente la position du premier caractère de l’URL dans le texte du Post. Le second entier représente la position du premier caractère non-URL qui suit l’URL (ou la fin de la chaîne si l’URL est la dernière partie du texte du Post). Exemple : “indices”:[15,35] |
media_url | String | URL http:// pointant directement vers le fichier média téléchargé. Exemple : “media_url”:“http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg” Pour les médias dans les Messages privés, media_url est la même URL https que media_url_https et doit être accessible en signant une requête avec l’access token de l’utilisateur en utilisant OAuth 1.0a.Il n’est pas possible d’accéder aux images via une session x.com authentifiée. Veuillez consulter cette page pour apprendre comment prendre en compte ces changements récents. Vous ne pouvez pas intégrer directement ces images dans une page web. Voir Formatage d’URL de média photo pour savoir comment formater l’URL d’une photo, telle que media_url_https , en fonction des sizes disponibles. |
media_url_https | String | URL https:// pointant directement vers le fichier média téléchargé, pour l’intégration sur des pages https. Exemple : “media_url_https”:“https://p.twimg.com/AZVLmp-CIAAbkyy.jpg” Pour les médias dans les Messages privés, media_url_https doit être accessible en signant une requête avec l’access token de l’utilisateur en utilisant OAuth 1.0a.Il n’est pas possible d’accéder aux images via une session x.com authentifiée. Veuillez consulter cette page pour apprendre comment prendre en compte ces changements récents. Vous ne pouvez pas intégrer directement ces images dans une page web. Voir Formatage d’URL de média photo pour savoir comment formater l’URL d’une photo, telle que media_url_https , en fonction des sizes disponibles. |
sizes | Size Object | Objet indiquant les tailles disponibles pour le fichier média. Exemple : “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 } } } Voir Formatage d’URL de média photo pour savoir comment formater l’URL d’une photo, telle que media_url_https , en fonction des sizes disponibles. |
source_status_id | Int64 | Nullable. Pour les Posts contenant des médias qui étaient à l’origine associés à un Post différent, cet ID pointe vers le Post original. Exemple : “source_status_id”: 205282515685081088 |
source_status_id_str | Int64 | Nullable. Pour les Posts contenant des médias qui étaient à l’origine associés à un Post différent, cet ID basé sur une chaîne de caractères pointe vers le Post original. Exemple : “source_status_id_str”: “205282515685081088” |
type | String | Type de média téléchargé. Les types possibles incluent photo, video et animated_gif. Exemple : “type”:“photo” |
url | String | URL encapsulée pour le lien média. Correspond à l’URL intégrée directement dans le texte brut du Post, et aux valeurs du paramètre indices . Exemple :“url”:“http://t.co/rJC5Pxsu” |
Objets de taille de média
Objet Sizes
Champ | Type | Description |
thumb | Size Object | Informations sur une version miniature du média. Exemple : “thumb”:“h”:150, “resize”:“crop”, “w”:150} Les photos au format miniature seront limitées à remplir une zone de 150×150 et seront recadrées. |
large | Size Object | Informations sur une version grande du média. Exemple : “large”:“h”:454, “resize”:“fit”, “w”:680} Les photos au petit format seront limitées à s’adapter dans une zone de 680×680. |
medium | Size Object | Informations sur une version moyenne du média. Exemple : “medium”:“h”:800, “resize”:“fit”, “w”:1200} Les photos au format moyen seront limitées à s’adapter dans une zone de 1200×1200. |
small | Size Object | Informations sur une version petite du média. Exemple : “small”:“h”:1366, “resize”:“fit”, “w”:2048} Les photos au grand format seront limitées à s’adapter dans une zone de 2048×2048. |
Objet Size
Champ | Type | Description |
w | Int | Largeur en pixels de cette taille. Exemple : “w”:150 |
h | Int | Hauteur en pixels de cette taille. Exemple : “h”:150 |
resize | String | Méthode de redimensionnement utilisée pour obtenir cette taille. Une valeur fit indique que le média a été redimensionné pour s’adapter à une dimension, en conservant son ratio d’aspect natif. Une valeur crop indique que le média a été recadré afin de s’adapter à une résolution spécifique. Exemple : “resize”:“crop” |
Mise en forme des URL des médias photo
media_url
ou media_url_https
peuvent être utilisées seules, ce qui charge par défaut la variante medium. Il est toutefois préférable de fournir une URL de média photo entièrement formatée lorsque c’est possible.
Une URL de média photo comporte trois parties :
URL de base | L’URL de base est l’URL du média sans l’extension de fichier. Par exemple : “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, L’URL de base est alors : https://pbs.twimg.com/media/DOhM30VVwAEpIHq |
Format | Le format correspond au type de photo. Les formats possibles sont jpg ou png, indiqués par l’extension de l’URL du média. Par exemple : “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, Le format est alors : jpg |
Nom | Le nom est l’identifiant du champ de taille à charger. Par exemple : “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 } } } Le nom à utiliser pour charger la photo en grande taille serait : large |
Legacy format | Le format « legacy » est obsolète. Tous les chargements de médias photo doivent passer au format moderne. <base_url>.<format>:<name> Par exemple : https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg:large |
Modern format | Le format moderne pour le chargement des photos a été établi chez X en 2015 et est devenu le standard de facto depuis 2017. Tous les chargements de médias photo doivent passer à ce format. <base_url>?format=<format>&name=<name> Par exemple : https://pbs.twimg.com/media/DOhM30VVwAEpIHq?format=jpg&name=large Remarque : les éléments dans la chaîne query de l’URL des médias photo sont classés par ordre alphabétique. Si le chargement des médias devait ajouter des éléments query supplémentaires, l’ordre alphabétique resterait requis. Par exemple, s’il existait l’élément query hypothétique nommé preferred_format, il serait placé après format et name dans la chaîne query. |
Objet URL
La sectionentities
contient un tableau urls
avec un objet pour chaque lien inclus dans le corps du Post, et un tableau vide si aucun lien n’est présent.
L’opérateur has:links
correspond si le tableau contient au moins un élément. L’opérateur url:
est utilisé pour faire correspondre l’attribut expanded_url
. Si vous utilisez l’enrichissement Expanded URL, l’opérateur url:
correspond à l’attribut unwound.url
(URL entièrement déroulée). Si vous utilisez l’enrichissement Enhanced URL, les opérateurs url_title:
et url_description:
sont utilisés pour faire correspondre les attributs unwound.title
et unwound.description
.
Field | Type | Description |
display_url | String | URL collée/saisie dans le Post. Exemple : “display_url”:“bit.ly/2so49n2” |
expanded_url | String | Version développée de display_url . Exemple :“expanded_url”:“http://bit.ly/2so49n2” |
indices | Array of Int | Tableau d’entiers représentant les décalages dans le texte du Post où l’URL commence et se termine. Le premier entier indique l’emplacement du premier caractère de l’URL dans le texte du Post. Le second entier indique l’emplacement du premier caractère non-URL après la fin de l’URL. Exemple : “indices”:[30,53] |
url | String | URL encapsulée, correspondant à la valeur intégrée directement dans le texte brut du Post, ainsi qu’aux valeurs du paramètre indices. Exemple : “url”:“https://t.co/yzocNFvJuL” |
unwound
:
Field | Type | Description |
url | String | Version entièrement déroulée du lien inclus dans le Post. Exemple : “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 | Statut HTTP final du processus de déroulement, « 200 » indiquant une réussite. Exemple : 200 |
title | String | Titre HTML du lien. Exemple : “title”:“Using X as a ‘go-to’ communication channel during severe weather” |
description | String | Description HTML du lien. Exemple : “description”:“Using X as a ‘go-to’ communication channel during severe weather” |
Objet de mention d’utilisateur
La sectionentities
contient un tableau user_mentions
avec un objet pour chaque mention d’utilisateur incluse dans le corps du Post, et inclut un tableau vide si aucune mention d’utilisateur n’est présente.
L’opérateur PowerTrack @
est utilisé pour faire correspondre l’attribut screen_name
. L’opérateur has:mentions
correspond si le tableau contient au moins un élément.
Champ | Type | Description |
id | Int64 | ID de l’utilisateur mentionné, sous forme d’entier. Exemple : “id”:6253282 |
id_str | String | ID de l’utilisateur mentionné, sous forme de chaîne. Exemple : “id_str”:“6253282” |
indices | Array of Int | Un tableau d’entiers représentant les positions (offsets) dans le texte du Post où la référence à l’utilisateur commence et se termine. Le premier entier indique l’emplacement du caractère « @ » de la mention d’utilisateur. Le deuxième entier indique l’emplacement du premier caractère suivant la mention qui ne fait pas partie du screen_name. Exemple : “indices”:[4,15] |
name | String | Nom affiché de l’utilisateur référencé. Exemple : “name”:“API” |
screen_name | String | Screen name de l’utilisateur référencé. Exemple : “screen_name”:“api” |
Objet Symbol
La sectionentities
contient un tableau symbols
avec un objet pour chaque $cashtag présent dans le corps du Post, et un tableau vide si aucun symbole n’est présent.
L’opérateur PowerTrack $
est utilisé pour faire correspondre l’attribut text
. L’opérateur has:symbols
correspond si le tableau contient au moins un élément.
Field | Type | Description |
indices | Array of Int | Un tableau d’entiers indiquant les positions dans le texte du Post où le symbole/cashtag commence et se termine. Le premier entier représente l’emplacement du caractère »). Exemple: “indices”:[12,17] |
text | String | Nom du cashtag, sans le caractère initial « $ ». Exemple: “text”:“twtr” |
Objet Poll
entities
contiendra un tableau polls
avec un seul objet poll
si le Post inclut un sondage. Si aucun sondage n’est présent, il n’y aura pas de tableau polls
dans la section entities
.
Notez que ces métadonnées de Poll ne sont disponibles qu’avec les API Enterprise suivantes :
- streams de volume (Decahose)
- Real-time PowerTrack
- X Search APIs (Full-Archive Search et 30-Day Search)
Champ | Type | Description |
options | Array of Option Object | Un tableau d’options, chacune ayant une position dans le sondage et le texte associé à cette position. Exemple : “options”: [ “position”: 1, “text”: “I read documentation once.” } ] } |
end_datetime | String | Horodatage (UTC) de fin du sondage. Exemple : “end_datetime”: “Thu May 25 22:20:27 +0000 2017” |
duration_minutes | String | Durée du sondage en minutes. Exemple : “duration_minutes”: 60 |
Détails sur les Retweets et les Quote Tweets
Retweets













Quote Tweets
Entités pour l’objet utilisateur
Les entités pour les objets utilisateur décrivent les URL qui apparaissent dans l’URL de profil définie par l’utilisateur et dans les fields de description. Elles ne décrivent pas les hashtags ni les user_mentions. Contrairement aux entités de Post, les entités utilisateur peuvent s’appliquer à plusieurs fields au sein de leur objet parent — pour lever toute ambiguïté, vous trouverez des nœuds parents appelés url et description qui indiquent quel field contient l’URL « entitisée ». Dans cet exemple, le field url de l’utilisateur contient un lien t.co qui est entièrement développé dans le nœud entities/url/urls[0] de la réponse. L’utilisateur n’a pas d’URL encapsulée dans sa description.Exemple de JSON
Entités étendues X
Aller à cette section Introduction Objet Extended Entities Exemples de Tweets et de charges utiles JSON - Tweet avec quatre photos natives - Tweet avec une vidéo native - Tweet avec un GIF animé Étapes suivantesIntroduction
extended_entities
. L’objet extended_entities
contient un unique tableau media
d’objets media
(voir la section entities
pour son dictionnaire de data). Aucun autre type d’entité, tels que les hashtags et les liens, n’est inclus dans la section extended_entities
. L’objet media
dans la section extended_entities
est identique dans sa structure à celui inclus dans la section entities
.
Les Posts ne peuvent comporter qu’un seul type de média joint. Pour les photos, jusqu’à quatre peuvent être jointes. Pour les vidéos et les GIF, un seul peut être joint. Étant donné que les metadata du type
de média dans la section extended_entities
indiquent correctement le type de média (« photo », « video » ou « animated_gif ») et prennent en charge jusqu’à 4 photos, il s’agit de la source de metadata privilégiée pour les médias natifs.
Exemples de Posts et de charges utiles JSON
Voici la section
entities
pour ce Post :
extended_entities
pour ce Post :
Post avec vidéo native
video_info
est remplacé par un objet additional_media_info
.
L’objet additional_media_info
contient des informations média supplémentaires fournies par l’éditeur, telles que title
, description
et embeddable flag
. Le contenu vidéo n’est accessible qu’aux clients officiels de X lorsque embeddable=false
. Dans ce cas, toutes les URL vidéo fournies dans la charge utile seront hébergées par X, afin que l’utilisateur puisse ouvrir la vidéo sur une propriété appartenant à X en cliquant sur le lien.
Voici un exemple de l’objet extended entities dans cette situation :
entities
où le champ type
est à tort défini sur « photo ». À nouveau, la section extended_entities
est à privilégier pour tous les types de médias natifs, y compris « video » et « animated_gif ».
Post avec un GIF animé
Vous trouverez ci-dessous les métadonnées des entités étendues pour ce Post avec un GIF animé :
Exemples de charges utiles enrichies natives
Post
Répondre à un Post
Post étendu
Post avec extended_entities
Retweet
Tweet cité
Retweet d’un Tweet avec citation
Objets de données Activity Streams pour Enterprise
Vous souhaitez en savoir plus sur la façon dont le format de données Activity Streams correspond au format X API v2 ?
Veuillez noter : il est fortement recommandé d’utiliser le format Enriched Native pour les API de données Enterprise.
- Le format Enriched Native inclut toutes les nouvelles metadata depuis 2017, telles que les metadata de sondage, ainsi que des métriques supplémentaires comme reply_count et quote_count.
- Le format Activity Streams n’a pas été mis à jour avec de nouvelles metadata ou enrichissements depuis la mise à jour des caractères en 2017.
Objet Activity
Dictionnaire de données
Attribut | Type | Description |
id | string | Un IRI unique pour le Post. Plus précisément, “tag” est le schéma, “search.x.com” représente le domaine du schéma, et 2005 correspond à l’année de dérivation du schéma. Lors du stockage des Posts, cet élément doit être utilisé comme identifiant unique ou clé primaire. “id”: “tag:search.x.com,2005:1050118621198921728” |
objectType | string | Type d’objet, toujours défini à “activity” “objectType”: “activity” |
object | object | Un objet représentant le Post en cours de publication ou de partage. Pour les Retweets, cet élément contiendra une “activity” complète, avec les champs pertinents décrits dans ce schéma. Pour les Posts originaux, cet élément contiendra un objet “note”, avec les champs décrits ici. “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 objet représentant le corps de texte complet lorsque le texte du Post dépasse 140 caractères. “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 | Utilisé lorsque le texte du Post dépasse 140 caractères. “display_text_range”: [ 0, 142 ] |
verb | string | Le type d’action effectuée par l’utilisateur. Posts : “post” Retweets : “share” Posts supprimés : “delete” Le verbe constitue la méthode appropriée pour distinguer un Tweet d’un véritable Retweet. Cependant, ceci s’applique uniquement aux vrais retweets, et non aux Tweets modifiés ou cités, qui n’utilisent pas la fonctionnalité Retweet de X. Pour une description des verbes AS cliquez ici. Pour les suppressions, notez que seul un nombre limité de champs sera inclus, comme indiqué dans l’exemple de charge utile ci-dessous. “verb”: “post” |
postedTime | date (ISO 8601) | L’heure à laquelle l’action s’est produite, par exemple l’heure de publication du Post. “postedTime”: “2018-10-10T20:19:24.000Z” |
generator | object | Un objet représentant l’utilitaire utilisé pour publier le Post. Cet élément contiendra le nom (“displayName”) et un lien (“link”) pour l’application source générant le Post. “generator”: “displayName”: “X Web Client”, “link”: “http://x.com” |
provider | object | Un objet JSON représentant le fournisseur de l’activité. Cet élément contiendra un objectType (“service”), le nom du fournisseur (“displayName”), et un lien vers le site web du fournisseur (“link”). “provider”: “objectType”: “service”, “displayName”: “X”, “link”: “http://www.x.com” |
link | string | Un lien permanent vers le Post. “link”: “http://x.com/API/statuses/1050118621198921728” |
body | string | Le texte du Post. Dans les Retweets, notez que X modifie la valeur du corps au niveau racine en ajoutant “RT @username” au début et en tronquant le texte original avec des points de suspension à la fin. Ainsi, pour les Retweets, votre application doit examiner object.body pour s’assurer qu’elle extrait le texte non modifié du Post original (qui est retweeté). “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 | Décrit la plage de caractères dans le texte du corps qui indique le Post affiché. Les Posts avec des @mentions en début commenceront à plus de 0 et les Posts avec des médias attachés ou qui dépassent 140 caractères indiqueront le display_text_range dans le long_object. “display_text_range”: [ 14, 42 ] ou “long_object”: “display_text_range”: [ 0, 277 ]… |
actor | object | Un objet représentant l’utilisateur X qui a publié. L’objet Actor fait référence à un utilisateur X et contient toutes les métadonnées pertinentes relatives à cet utilisateur. Voir détails de l’objet actor |
inReplyTo | object | Un objet JSON faisant référence au Post auquel on répond, le cas échéant. Contient un lien vers le Post. “inReplyTo”: “link”: “http://x.com/GOP/statuses/349573991561838593” |
location | object | Un objet JSON représentant le “Place” X où le Post a été créé. Il s’agit d’un objet transmis depuis la plateforme X. Voir objet location |
twitter_entities | object | L’objet entities du format de données de X qui contient des listes d’URL, de mentions et de hashtags. Veuillez consulter la documentation de X sur les Entities ici. Notez que dans les Retweets, X peut tronquer les valeurs des entities qu’il extrait au niveau racine. Ainsi, pour les Retweets, votre App devrait examiner object.twitter_entities pour s’assurer que vous utilisez des valeurs non tronquées. Voir les détails de l’objet twitter_entities |
twitter_extended_entities | object | Un objet du format de données natif de X contenant “media”. Ceci sera présent pour tout Post où l’objet twitter_entities contient des données dans le champ “media”, et inclura plusieurs photos lorsqu’elles sont présentes dans le Post. Notez que c’est l’emplacement correct pour récupérer les informations média pour les Posts multi-photos. Les photos multiples sont représentées par des objets JSON séparés par des virgules dans le tableau “media”. Voir détails de l’objet twitter_extended_entities |
gnip | object | Un objet ajouté à la charge utile d’activité pour indiquer les règles correspondantes, et ajouter des données enrichies basées sur les enrichissements actifs sur le stream ou le produit. Voir détails de l’objet gnip |
edit_history | Object | Identifiants uniques indiquant toutes les versions d’un Post. Pour les Posts sans modifications, il y aura un ID. Pour les Posts avec un historique de modifications, il y aura plusieurs ID, classés par ordre croissant reflétant l’ordre des modifications, avec la version la plus récente en dernière position du tableau. Les ID de Post peuvent être utilisés pour hydrater et visualiser les versions précédentes d’un Post. Exemple : edit_history” : “initial_tweet_id” : “1283764123” “edit_tweet_ids” : [“1283764123”, “1394263866”] |
edit_controls | Object | Lorsque présent, indique combien de temps un Post reste encore modifiable et le nombre de modifications restantes. Les Posts ne sont modifiables que pendant les 30 premières minutes après la création et peuvent être modifiés jusqu’à cinq fois. Les ID de Post peuvent être utilisés pour hydrater et visualiser les versions précédentes d’un Post. Exemple : “edit_controls” : “editable_until_ms” : 123 “edits_remaining” : 3 |
editable | Boolean | Lorsque présent, indique si un Post était éligible à la modification lors de sa publication. Ce champ n’est pas dynamique et ne basculera pas de True à False lorsqu’un Post atteint sa limite de temps de modification, ou son nombre maximum de modifications. Les fonctionnalités de Post suivantes rendront ce champ false : _ Le Post est promu _ Le Post contient un sondage _ Le Post est une réponse de fil non-personnel _ Le Post est un Retweet (notez que les Quote Tweets sont éligibles à la modification) _ Le Post est nullcast _ Post de Communauté _ Post Superfollow _ Post Collaboratif |
Attributs supplémentaires du Post
Attribut | Type | Description |
---|---|---|
twitter_lang | string | |
favoritesCount | int | Nullable. Indique approximativement combien de fois ce Post a été like par des utilisateurs de X. “favoritesCount”:298 |
retweetCount | int | Nombre de fois où ce Post a été retweeté. Exemple : “retweetCount”:153 |
Attributs obsolètes
Champ | Type | Description |
geo | objet | Position ponctuelle où le Post a été créé. |
twitter_filter_level | chaîne | Champ obsolète conservé pour éviter toute rupture de compatibilité |
Objets d’activité de Post imbriqués
{ "id": "tag:search.x.com,2005:222222222222", "objectType": "activity", "verb": "post", "body": "Quoting a 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 d’un Tweet cité :
Objet long
Objet actor
Dictionnaire de données
Attribut | Type | Description |
---|---|---|
objectType | string | ”objectType”: “person” |
id | string | La représentation sous forme de chaîne de l’identifiant unique de cet auteur. Exemple : “id:x.com:2244994945” |
link | ”http://www.x.com/XDeveloeprs” | |
displayName | String | Le nom de l’utilisateur tel qu’il l’a défini. Pas nécessairement un nom de personne. Généralement limité à 50 caractères, mais susceptible d’évoluer. Exemple : “displayName”: “XDevelopers” |
preferredUsername | string | Le nom d’écran, identifiant ou alias avec lequel cet utilisateur s’identifie. Unique mais susceptible de changer. Utilisez id comme identifiant d’utilisateur lorsque possible. Généralement limité à 15 caractères, mais certains comptes historiques peuvent avoir des noms plus longs. Exemple :“preferredUsername”: “XDevelopers” |
location | object | ** “location”: “objectType”:** “place”, “displayName”: “127.0.0.1” ** }** |
links | array | Nullable. Une URL fournie par l’utilisateur et associée à son profil. Exemple : ** “links”: [ { “href”:** “https://developer.x.com/en/community”, “rel”: “me” ** } ]** |
summary | string | Nullable. Chaîne UTF‑8 définie par l’utilisateur décrivant son compte. Exemple : “summary”: “The voice of the #XDevelopers team…“ |
protected | Boolean | Lorsque true, indique que cet utilisateur a choisi de protéger ses Posts. Voir About Public and Protected Posts. Exemple : “protected”: true |
verified | Boolean | Lorsque true, indique que l’utilisateur a un compte vérifié. Voir Verified Accounts. Exemple : “verified”: false |
followersCount | Int | Le nombre d’abonnés que ce compte a actuellement. Dans certaines conditions de forte contrainte, ce champ indiquera temporairement « 0 ». Exemple : “followers_count”: 21 |
friendsCount | Int | Le nombre d’utilisateurs suivis par ce compte (également appelés « followings »). Dans certaines conditions de forte contrainte, ce champ indiquera temporairement « 0 ». Exemple : “friends_count”: 32 |
listedCount | Int | Le nombre de Listes publiques dont cet utilisateur est membre. Exemple : “listed_count”: 9274 |
favoritesCount | Int | Le nombre de Posts que cet utilisateur a indiqués comme like sur toute la durée de vie du compte. Orthographe britannique utilisée dans le nom du champ pour des raisons historiques. Exemple : “favourites_count”: 13 |
statusesCount | Int | Le nombre de Posts (y compris les Retweets) publiés par l’utilisateur. Exemple : “statuses_count”: 42 |
postedTime | date | La date et l’heure UTC de création du compte utilisateur sur X. Exemple : “postedTime”: “2013-12-14T04:35:55.036Z” |
image | string | Une URL HTTPS pointant vers l’image de profil de l’utilisateur. Exemple : “image”: “https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg” |
Attributs obsolètes (dépréciés)
Champ | Type | Description |
---|---|---|
utcOffset | null | La valeur sera définie à null. Toujours disponible via GET account/settings |
twitterTimeZone | null | La valeur sera définie à null. Toujours disponible via GET account/settings en tant que tzinfo_name |
languages | null | La valeur sera définie à null. Toujours disponible via GET account/settings en tant que language |
Exemples :
Objet Location
Dictionnaire des données de localisation
Champ | Type | Description |
---|---|---|
objectType | string | Voir ici pour des informations plus détaillées. Exemple : “objectType”: “place” |
displayName | string | Nom complet de l’emplacement. ****“displayName”: “United States” |
name | string | Nom de l’emplacement selon le format JSON des lieux de X. |
link | string | Lien vers la représentation JSON complète du lieu sur X. “link”: “https://api.x.com/1.1/geo/id/27c45d804c777999.json” |
geo | object | Objet des coordonnées géographiques provenant de X, soit un polygone, soit un point. Voir geo |
countryCode | String | Code pays abrégé représentant le pays dans lequel se trouve ce lieu. Exemple : “countryCode”: “US” |
country | String | Nom du pays dans lequel se trouve ce lieu. Exemple : “country”: “United States” |
objets dérivés de profileLocations
Champ | Type | Description |
address | object | Dans l’objet location de profileLocation au sein de l’objet gnip. Adresse de l’emplacement obtenue via l’enrichissement géographique du profil. Le niveau de granularité peut varier. “address”: { ** “country”: “United States”, “countryCode”: “US”, “locality”: “Providence”, “region”: “Rhode Island”, “subRegion”: “Providence County” }** |
geo | object | Dans l’objet location de profileLocation au sein de l’objet gnip. Coordonnées du centroïde de l’emplacement obtenues via l’enrichissement géographique du profil. ”geo”: { ** “coordinates”: [ -98.5, 39.76 ], “type”: “point” }** |
Objet entities de X
Exemple :
Objet X extended entities
Exemple :
Objet Gnip
Dictionnaire de données
Champ | Type | Description |
matching_rules | array | Contient un tableau d’objets de règles de correspondance indiquant la règle correspondant à l’activité. “matching_rules”: [ ** { “tag”: null, “id”:** 1026514022567358500**, “id_str”:** “1026514022567358464” ** } ]** |
urls | array | Contient un tableau des liens présents dans l’activité, ainsi que les métadonnées d’URL développée pour l’enrichissement de déroulage d’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 | Contient l’objet d’emplacement dérivé de l’enrichissement 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” ** } ] }** |
Exemple :
Exemples de charges utiles des streams d’activité
twitter_extended_entities
Chronologie des métadonnées de Tweet
Introduction**
Au cœur, X est un réseau de communication public, en temps réel et mondial. Depuis 2006, l’évolution de X a été guidée à la fois par les usages et conventions des utilisateurs et par les nouvelles fonctionnalités et améliorations du produit. Si vous utilisez des données X pour des recherches historiques, comprendre la chronologie de cette évolution est essentiel pour faire ressortir des Posts d’intérêt à partir de l’archive de données. X a été lancé comme une simple application SMS sur mobile et est devenu une plateforme de communication complète. Une plateforme avec un ensemble complet d’API. Les API ont toujours été un pilier du réseau X. La première API a été lancée peu après le lancement de X. Lorsque le géomarquage des Posts a été introduit pour la première fois en 2009, il a été rendu disponible via une Geo API (et plus tard, la possibilité de « géomarquer » un Post a été intégrée à l’interface utilisateur de X.com). Aujourd’hui, les API de X alimentent le réseau de communication bidirectionnel devenu une source d’actualités de dernière minute et de partage d’informations. Les opportunités de construire sur ce canal de communication mondial et en temps réel sont infinies. X met à disposition deux API historiques qui donnent accès à chaque Post disponible publiquement : Historical PowerTrack et la Full-Archive Search API. Ces deux API fournissent un ensemble d’opérateurs utilisés pour interroger et collecter des Posts d’intérêt. Ces opérateurs correspondent à une variété d’attributs associés à chaque Post, des centaines d’attributs tels que le contenu textuel du Post, le nom du compte de l’auteur et les liens partagés dans le Post. Les Posts et leurs attributs sont encodés en JSON, un format d’échange de données textuel courant. Ainsi, à mesure que de nouvelles fonctionnalités étaient introduites, de nouveaux attributs JSON apparaissaient et, en général, de nouveaux opérateurs d’API étaient ajoutés pour correspondre à ces attributs. Si votre cas d’usage consiste à écouter ce que le monde a dit sur X, plus vous comprenez à partir de quand les opérateurs ont disposé de métadonnées JSON sur lesquelles faire correspondre, plus vos filtres Historical PowerTrack pourront être efficaces. Ensuite, nous présenterons quelques concepts clés qui prépareront le terrain pour comprendre comment les mises à jour des métadonnées des Posts influencent la recherche de votre signal de données d’intérêt.Concepts clés**
Des conventions utilisateur aux objets de première classe sur X
Métadonnées des Posts, mutabilité, mises à jour et actualité
Médias « natifs »
has:videos
, has:images
et has:media
. Ceux-ci ne correspondent qu’au contenu média partagé via les fonctionnalités de X. Pour faire correspondre d’autres médias hébergés en dehors de la plateforme X, vous devrez utiliser des opérateurs ciblant les métadonnées d’URL.
Donc, avant d’examiner en détail les produits Historical PowerTrack et Full-Archive Search, faisons un tour d’horizon de l’évolution de X, en tant que produit et plateforme, au fil du temps.
Chronologie de X
Vous trouverez ci-dessous une chronologie sélective de X. La plupart de ces mises à jour de X ont, d’une manière ou d’une autre, profondément influé sur le comportement des utilisateurs, le contenu JSON des Posts, les opérateurs de query, ou les trois. En considérant X comme une plateforme d’API, les événements suivants ont, d’une manière ou d’une autre, affecté les charges utiles JSON utilisées pour encoder les Posts. En retour, ces détails JSON influencent la façon dont les API historiques de X les font correspondre.
Notez que cette liste chronologique est généralement précise mais non exhaustive.
2006
- octobre
- @replies devient une convention.
- Les cashtags deviennent des liens cliquables/recherchables en juin 2012.
- novembre - Introduction des favoris.
2007
- Janvier - les @replies deviennent un objet de première classe avec un bouton Répondre dans l’UI et la metadata
in_reply_to
. - Avril - les Retweets deviennent une convention.
- Août - les #hashtags s’imposent comme un outil principal pour rechercher et organiser les Posts.
2009
- Février - les $cashtags deviennent une convention courante pour discuter des symboles boursiers.
- Mai - la phase « bêta » du Retweet est introduite avec « Via @ » ajouté en préfixe au corps du Post.
- Juin - Comptes vérifiés introduits.
- Août - Les Retweets deviennent un objet de première classe avec le motif « RT @ » et une nouvelle metadata
retweet_status
. - Octobre - Fonctionnalité List lancée.
- Novembre - L’API de géolocalisation des Posts est lancée, fournissant la première méthode permettant aux utilisateurs de partager leur position via des applications tierces.
2010
- Juin - X Places introduit pour le géomarquage des Posts.
- Août - Lancement du bouton Post pour les sites web. Le partage de liens est devenu plus facile.
2011
- Mai - Introduction du bouton « Follow », facilitant l’abonnement aux comptes associés aux sites web.
- Août - Introduction des photos natives.
2012
- Juin : les $Cashtags deviennent des liens cliquables et consultables.
2014
- Mars - Identification des personnes sur les photos et prise en charge de jusqu’à quatre photos. Les metadata Extended X Entities ont été introduites.
- Avril - Les émojis sont désormais pris en charge nativement dans l’interface de X. Les émojis étaient couramment utilisés dans les Posts depuis au moins 2008.
2015
- Avril - Une modification de l’interface utilisateur de « Post » sur X entraîne une diminution du nombre de Posts géolocalisés.
- Octobre - Lancement de X Polls. Les sondages prenaient initialement en charge deux choix avec une période de vote de 24 heures. En novembre, les sondages ont commencé à prendre en charge quatre choix avec des périodes de vote allant de 5 minutes à sept jours. Les metadata des sondages ont été mises à disposition (format natif enrichi uniquement) en février 2017.
2016
- Février - GIF recherchables hébergés nativement dans la fenêtre de composition de Post.
- Mai - « Doing More with 140 » (dmw140) annoncé, présentant de nouvelles façons de gérer les Replies et les médias joints dans le cadre de la limite de 140 caractères d’un Post.
- Juin - Prise en charge native de la vidéo
- Juin - Les Retweets cités deviennent généralement disponibles.
- Juin - Stickers introduits pour l’ajout aux photos.
- Septembre - « Native attachments » introduits, l’URL finale n’étant pas comptabilisée dans les 140 caractères (« dmw140, partie 1 »).
2017
- Février - Les métadonnées des sondages X sont incluses dans les métadonnées des Posts (format natif enrichi uniquement).
- Avril - « Simplified Replies » introduites avec les comptes répondus non comptabilisés dans la limite de 140 caractères (« dmw140, part 2 »).
- Mai - Mises à jour GDPR user.time_zone défini sur null, user.utc_offset défini sur null, user.profile_background_image_url défini sur la valeur par défaut
- Juin - Mise à jour des changements de formatage de quoteTweet
- 29 septembre - La possibilité de modifier des Posts est déployée auprès d’un petit groupe de test. Les métadonnées des Posts modifiés sont ajoutées à l’Objet Post le cas échéant. Cela inclut les objets edit_history et edit_controls. Ces métadonnées ne seront pas renvoyées pour les Posts créés avant l’ajout de la fonctionnalité d’édition. Aucun opérateur associé pour ces métadonnées. Pour en savoir plus sur le fonctionnement de l’édition de Posts, consultez les principes fondamentaux de l’édition de Posts
lang:
sert à faire correspondre des Posts dans une langue spécifiée. X fournit un service de classification des langues (plus de 50 langues prises en charge) et les X API exposent ces métadonnées dans le JSON généré pour chaque Post. Ainsi, si un Post est rédigé en espagnol, l’attribut JSON “lang” est défini sur “es”. Donc, si vous construisez un filtre avec la clause lang:es
, il ne correspondra qu’aux Posts classés comme espagnols.
Les informations de chronologie peuvent également aider à mieux interpréter les données des Posts reçues. Supposons que vous étudiiez le partage de contenu à propos des Jeux olympiques d’été de 2008 et de 2012. Si vous appliquiez uniquement l’opérateur is:retweet
pour faire correspondre les Retweets, aucune donnée ne correspondrait en 2008. En revanche, pour 2012, il y aurait probablement des millions de Retweets. Vous pourriez en conclure à tort qu’en 2008 les Retweets n’étaient pas une pratique des utilisateurs, ou que tout simplement personne n’a fait de Retweet à propos de ces Jeux olympiques. Puisque les Retweets sont devenus un objet de première classe en 2009, vous devez ajouter une clause de règle ”RT @”
pour aider à les identifier en 2008.
Les Retweets et la classification linguistique des Posts sont deux exemples d’attributs de Post avec une longue histoire et de nombreux détails produit. Ci-dessous, nous aborderons plus en détail ces catégories d’attributs et d’autres importantes pour faire correspondre et comprendre les données X.
Reconnaître les faux négatifs
has:videos
, qui correspond aux Posts avec des vidéos natives, cette clause ne correspondra à aucun Post avant 2015.
Cependant, le partage de vidéos était courant sur X bien avant 2015. Avant cette date, les utilisateurs partageaient des liens vers des vidéos hébergées ailleurs, mais en 2015, X a intégré de nouvelles fonctionnalités de partage de vidéos directement dans la plateforme. Pour trouver ces Posts antérieurs d’intérêt, vous incluriez une clause de règle telle que url:"youtube.com"
.
Notez qu’avec les APIs de recherche, il existe des cas où des metadata ont été « réattribuées a posteriori » lors de la reconstruction de l’index. Un bon exemple est celui des cashtag en 2015, l’index de recherche a été reconstruit et, au passage, l’entité de symbole a été extraite de tous les corps de Post, y compris au début de 2006 lorsque « nowoon! ».
Identifier et filtrer les attributs de Post importants pour votre cas d’usage
Profils X
Post original et Retweets
is:retweet
permet aux utilisateurs d’inclure ou d’exclure les Retweets. Si vous extrayez des data d’avant août 2009, vous devez disposer de deux stratégies pour faire correspondre (ou non) les Retweets. Avant août 2009, il faut vérifier le message du Post lui-même, en utilisant une correspondance exacte d’expression, pour repérer le motif « RT @ ». Pour les périodes postérieures à août 2009, l’opérateur is:retweet
est disponible.
Classifications de langue des Posts
lang:
est disponible pour l’ensemble de l’archive des Posts. Avec Historical PowerTrack, les métadonnées de classification de langue de X sont disponibles dans l’archive à partir du 26 mars 2013.
Géoréférencement des Posts
- Références géographiques dans le contenu d’un Post
- Posts géolocalisés par l’utilisateur
- Localisation « domicile » du profil du compte définie par un utilisateur