Consultez nos guides de comparaison :
X API : Dictionnaire de données Enterprise
Introduction
Enterprise
Les Publications sont les éléments de base de tout ce qui se passe sur X. Toutes les X API qui renvoient des Publications fournissent ces données encodées en JavaScript Object Notation (JSON). JSON est fondé sur des paires clé-valeur, avec des attributs nommés et des valeurs associées. Les objets Publication 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 tous des objets Publication. Si une Publication est liée à une autre Publication, en tant que Retweet, réponse ou Tweet cité, chacune sera identifiée ou intégrée dans l’objet Publication. Même la Publication la plus simple, dans le format de données natif de X, contiendra des objets JSON imbriqués pour représenter les autres attributs d’une Publication, tels que l’auteur, les utilisateurs mentionnés, le lieu balisé, les hashtags, les symboles de cashtag, les médias ou les liens URL. Lorsque vous travaillez avec les données de X, il s’agit d’un concept important à comprendre. Le format des données de Publication que vous recevrez à partir de la X API dépend du type de Publication reçu, de la X API que vous utilisez et des paramètres de format.
Les endpoints Enterprise qui renvoient des objets Publication ont été mis à jour pour fournir les métadonnées nécessaires à la compréhension de l’historique des modifications de la Publication. Pour en savoir plus sur ces métadonnées, consultez la page Principes de base sur la modification des Publications.
Dans le format natif de X, le payload JSON comprend des attributs au 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 fournissent des données dans deux formats différents. Le format Enterprise le plus proche du format natif standard v1.1 est Native Enriched. Le format de données Enterprise historique est Activity Streams, initialement mis en œuvre 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 Native Enriched depuis 2017. Le format Enriched Native est exactement ce que son nom suggère : il inclut les objets natifs X ainsi que des enrichissements supplémentaires disponibles pour les produits de données Enterprise, comme les métadonnées de déroulement d’URL, la géolocalisation de profil, les métadonnées de sondage et des métriques d’engagement supplémentaires.
- Le format Enriched Native inclut toutes les nouvelles métadonnées depuis 2017, comme les métadonnées de sondage, ainsi que des métriques supplémentaires comme
reply_countetquote_count.- Le format Activity Streams n’a pas été mis à jour avec de nouvelles métadonnées ou de nouveaux enrichissements depuis la mise à jour du nombre de caractères en 2017.
- Enrichissement des URL développées et améliorées
- Enrichissement des règles de correspondance
- Enrichissement des métadonnées de sondage
- Enrichissement de la géolocalisation de profil
Comparaison d’objets par format de données
| Native Enriched | Activity Streams |
|---|---|
| Link Objet Publication | Link Objet activité |
| Link Objet utilisateur | Link Objet acteur |
| Link Objet entités | Link Objet entités X |
| Link Objet entités étendues | [Link]/x-api/enterprise-gnip-2.0/fundamentals/data-dictionary#x-extended-entities Objet entités X étendues |
| Link Objet géographique | Link Objet lieu |
| n/a | Link Objet Gnip |
Bonnes pratiques d’analyse
- Le JSON de X est encodé en UTF-8.
- Les analyseurs doivent pouvoir gérer sans difficulté la variation de l’ordre des champs. Il faut partir du principe que le JSON de Publication est renvoyé sous forme de table de hachage de données non ordonnée.
- Les analyseurs doivent tolérer l’ajout de « nouveaux » champs.
- Les parseurs JSON doivent tolérer les champs « manquants », car tous les champs n’apparaissent pas dans tous les contextes.
- Il est généralement acceptable de considérer qu’un champ nul, un ensemble vide et l’absence d’un champ sont équivalents.
Objets de données Enterprise Native Enriched
Objet Tweet Native Enriched
Vous souhaitez en savoir plus sur la façon dont le format de données Native Enriched correspond au format X API v2 ? Consultez notre guide de comparaison : Native Enriched comparé à X API v2
Objet Publication
id, created_at et text. Les objets Publication contiennent également des objets imbriqués tels que user, entities et extended_entities. Les objets Publication comportent aussi d’autres objets Publication imbriqués tels que retweeted_status, quoted_status et extended_tweet. Le format natif enrichi inclut en outre un objet matching_rules.
Dictionnaire de données X
| Attribut | Type | Description |
|---|---|---|
| created_at | String | Heure UTC de création de cette Publication. Exemple : “created_at”: “Wed Oct 10 20:19:24 +0000 2018” |
| id | Int64 | La représentation sous forme d’entier de l’identifiant unique de cette Publication. Ce nombre est supérieur à 53 bits et certains langages de programmation peuvent rencontrer des difficultés ou produire 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é. Voir X IDs pour plus d’informations. Exemple :“id”:1050118621198921728 |
| id_str | String | La représentation sous forme de chaîne de caractères de l’identifiant unique de cette Publication. Les implémentations doivent utiliser celle-ci plutôt que le grand entier dans id. Exemple:“id_str”:“1050118621198921728” |
| text | String | Le texte UTF-8 brut de la mise à jour du statut. Voir X-text pour plus de détails sur les caractères actuellement considérés comme valides. Exemple : “text”:“Afin de laisser plus de place à l’expression, nous compterons désormais tous les emojis de la même façon — y compris ceux indiquant un genre et une couleur de peau t… https://t.co/MkGjXf9aXm” |
| source | String | Utilitaire utilisé pour publier la Publication, sous la forme d’une chaîne de caractères au format HTML. Les Publications provenant du site web de X ont une valeur de source web.Exemple : “source”:“X Web Client” |
| truncated | Boolean | Indique si la valeur du paramètre text a été tronquée, par exemple lorsqu’un retweet dépasse la limite de longueur de texte de la Publication originale de 140 caractères. Le texte tronqué se terminera par des points de suspension, comme ceci .... Étant donné que X rejette désormais les Publications trop longues au lieu de les tronquer, la grande majorité des Publications aura ce paramètre défini sur false. Notez que, même si les retweets natifs peuvent avoir leur propriété text de premier niveau raccourcie, le texte original reste disponible dans l’objet retweeted_status et le paramètre truncated sera défini à la valeur du statut original (dans la plupart des cas, false). Exemple:“truncated”:true |
| in_reply_to_status_id | Int64 | Nullable. Si la Publication représentée est une réponse, ce champ contiendra la représentation sous forme d’entier de l’ID de la Publication d’origine. Exemple : “in_reply_to_status_id”:1051222721923756032 |
| in_reply_to_status_id_str | String | Nullable. Si la Publication représentée est une réponse, ce champ contiendra la représentation sous forme de chaîne de caractères de l’ID de la Publication originale. Exemple: “in_reply_to_status_id_str”:“1051222721923756032” |
| in_reply_to_user_id | Int64 | Nullable. Si la Publication représentée est une réponse, ce champ contiendra la représentation sous forme d’entier de l’identifiant de l’auteur de la Publication originale. Ce ne sera pas nécessairement toujours l’utilisateur directement mentionné dans la Publication. Exemple: “in_reply_to_user_id”:6253282 |
| in_reply_to_user_id_str | String | Nullable. Si la Publication représentée est une réponse, ce champ contiendra la représentation sous forme de chaîne de l’ID de l’auteur de la Publication originale. Il ne s’agira pas nécessairement de l’utilisateur directement mentionné dans la Publication. Exemple : “in_reply_to_user_id_str”:“6253282” |
| in_reply_to_screen_name | String | Nullable. Si la Publication représentée est une réponse, ce champ contiendra le screen name de l’auteur de la Publication originale. Exemple : “in_reply_to_screen_name”:“xapi” |
| user | Objet utilisateur | L’utilisateur qui a publié cette Publication. Voir le dictionnaire de données User pour obtenir 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”: “La véritable X API. Tweets à propos des changements d’API, des problèmes de service et de notre plateforme développeurs. Vous ne trouvez pas la réponse ? Elle est sur mon site web.”, “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 | Coordonnées | Nullable. Représente l’emplacement géographique de cette Publication tel qu’indiqué par l’utilisateur ou l’application cliente. Le tableau interne de coordonnées est au format geoJSON (longitude en premier, puis latitude). Exemple : “coordinates”: <br/> “coordinates”: [ -75.14310264, 40.05701649 ], “type”:“Point” } |
| place | Lieu | Nullable. Lorsqu’il est présent, indique que la Publication est associée (mais n’en est pas nécessairement l’origine) à un objet Place. 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 la Publication est un Tweet cité. Ce champ contient la valeur entière de l’id de Publication du Tweet cité. Exemple : “quoted_status_id”:1050119905717055488 |
| quoted_status_id_str | String | Ce champ n’apparaît que lorsque la Publication est un Tweet cité. Il s’agit de la représentation sous forme de chaîne de caractères de l’identifiant de Publication du Tweet cité. Exemple: “quoted_status_id_str”:“1050119905717055488” |
| is_quote_status | Boolean | Indique s’il s’agit d’un Tweet cité. Exemple : “is_quote_status”:false |
| quoted_status | Publication | Ce champ n’apparaît que lorsque la Publication est un Tweet cité. Il contient l’objet Publication correspondant à la Publication d’origine citée. |
| retweeted_status | Publication | Les utilisateurs peuvent amplifier la diffusion de Publications rédigées par d’autres utilisateurs en les retweetant. Les Retweets peuvent être distingués des Publications classiques par l’existence de l’attribut retweeted_status. Cet attribut contient une représentation de la Publication originale qui a été retweetée. À noter que les retweets de retweets n’affichent pas de représentation du retweet intermédiaire, mais uniquement celle de la Publication originale. (Les utilisateurs peuvent également annuler un retweet qu’ils ont créé en supprimant leur retweet.) |
| quote_count | entier | Nullable. Indique le nombre approximatif de fois que cette Publication a été citée par des utilisateurs de X. Exemple : “quote_count”:33 Remarque : cet objet est uniquement disponible dans les offres Premium et Enterprise. |
| reply_count | entier | Nombre de fois où cette Publication a reçu une réponse. Exemple : “reply_count”:30 Remarque : Cet objet n’est disponible qu’avec les produits Premium et Enterprise. |
| retweet_count | entier | Nombre de fois où cette Publication a été retweetée. Exemple : “retweet_count”:160 |
| favorite_count | entier | Nullable. Indique approximativement combien de mentions « J’aime » cette Publication a reçues de la part des utilisateurs de X. Exemple : “favorite_count”:295 |
| entities | entités | Entités issues du texte de la Publication. Voir également Entities in X Objects. Exemple : “entities”: <br/> “hashtags”:[], “urls”:[], “user_mentions”:[], “media”:[], “symbols”:[] “polls”:[] } |
| extended_entities | entités étendues | Lorsqu’une Publication contient entre une et quatre photos natives, ou une vidéo ou un GIF animé, ce champ contient un tableau de métadonnées ‘media’. Cette propriété est également disponible pour les Tweets cités. Voir aussi Entities in X Objects. Exemple: “entities”: <br/> “media”:[] } |
| favorited | booléen | Nullable. Indique si cette Publication a été ajoutée aux favoris par l’utilisateur authentifié. Exemple : “favorited”:true |
| retweeted | booléen | Indique si cette Publication a été retweetée par l’utilisateur authentifié. Exemple : “retweeted”:false |
| possibly_sensitive | booléen | Nullable. Ce champ indique que le contenu peut être considéré comme sensible. L’auteur de la Publication peut, dans les préférences de son compte, sélectionner l’option « Marquer les médias que vous publiez comme pouvant contenir du contenu sensible » afin que chaque Publication créée par la suite ait cet indicateur activé. Ce champ peut également être évalué et marqué par un agent du support interne de X. ”possibly_sensitive”:false |
| filter_level | chaîne de caractères | Indique la valeur maximale du paramètre filter_level qui peut être utilisée tout en continuant à diffuser cette Publication. Ainsi, une valeur medium sera incluse dans les flux none, low et medium.Exemple : “filter_level”: “low” |
| lang | chaîne de caractères | Nullable. Lorsqu’il est présent, indique un identifiant de langue BCP 47 correspondant à la langue du texte de la Publication détectée automatiquement, ou und si aucune langue n’a pu être détectée. Exemple : “lang”: “en” |
| edit_history | objet | Identifiants uniques indiquant toutes les versions d’une Publication. Pour les Publications sans modification, il y aura un seul identifiant. Pour les Publications avec un historique de modifications, il y aura plusieurs identifiants, classés par ordre croissant reflétant l’ordre des modifications, la version la plus récente se trouvant à la dernière position du tableau. Les identifiants de Publication peuvent être utilisés pour hydrater et afficher les versions précédentes d’une Publication. Exemple : edit_history”: <br/> “initial_tweet_id”: “1283764123” “edit_tweet_ids”: [“1283764123”, “1394263866”] } |
| edit_controls | objet | Lorsqu’il est présent, indique pendant combien de temps une Publication reste modifiable ainsi que le nombre de modifications restantes. Les Publications ne sont modifiables que pendant les 30 premières minutes suivant leur création et peuvent être modifiées jusqu’à cinq fois. Les identifiants de Publication peuvent être utilisés pour hydrater et afficher les versions précédentes d’une Publication. Example: “edit_controls”: <br/> “editable_until_ms”: 123 “edits_remaining”: 3 } |
| editable | booléen | When present, indicates if a Publication était éligible à la modification au moment de sa publication. Ce champ n’est pas dynamique et ne passera pas de True à False lorsque la Publication atteint sa limite de temps de modification ou son nombre maximal de modifications. Les caractéristiques de Publication suivantes entraîneront une valeur False pour ce champ : * La Publication est promue * La Publication contient un sondage * La Publication est une réponse à un fil qui n’est pas le sien * La Publication est un retweet (notez que les Quote Tweets sont éligibles à la modification) * La Publication est en nullcast * Publication de communauté * Publication Superfollow * Publication collaborative |
| matching_rules | tableau d’objets Rule | Présent dans les produits filtered tels que X Search et PowerTrack. Fournit l’id et le tag associés à la règle qui correspond à la Publication. Plus d’informations sur les règles de correspondance ici. Avec PowerTrack, plusieurs règles peuvent correspondre à une même Publication. Exemple : “matching_rules”: ” [<br/> “tag”: “xapi emojis”, “id”: 1050118621198921728, “id_str”: “1050118621198921728” }]“ |
Attributs supplémentaires de Publication
Les X API qui fournissent des Publications (par exemple l’endpoint GET statuses/lookup) peuvent inclure ces attributs de Publication supplémentaires :| Attribute | Type | Description |
|---|---|---|
| current_user_retweet | Object | Perspectival N’apparaît que sur les méthodes prenant en charge le paramètre include_my_retweet, lorsqu’il est défini sur true. Indique l’ID de la Publication correspondant au propre retweet de l’utilisateur (s’il existe) de cette Publication. Exemple : “current_user_retweet”: <br/> “id”: 6253282, “id_str”: “6253282” } |
| scopes | Object | Un ensemble de paires clé-valeur indiquant la diffusion contextuelle prévue de la Publication concernée. Actuellement utilisé par les produits sponsorisés 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é retiré à la suite 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 retiré. X prend en charge les valeurs non liées à un pays suivantes pour ce champ : “XX” - Le contenu est retiré dans tous les pays “XY” - Le contenu est retiré 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 retiré est le “status” ou un “user”. Exemple : “withheld_scope”: “status” |
Attributs obsolètes
| Champ | Type | Description |
| geo | Object | Obsolète. Peut être nul. Utilisez plutôt le champ coordinates. Cet attribut obsolète a ses coordonnées au format [lat, long], tandis que toutes les autres données geo de Publication sont au format [long, lat]. |
Objets Publication imbriqués
Tweets cités
Publications étendues
Objet User natif enrichi
Dictionnaire des données utilisateur
| Attribut | Type | Description |
|---|---|---|
| id | Int64 | La représentation sous forme d’entier de l’identifiant unique de cet utilisateur. Ce nombre est supérieur à 53 bits et certains langages de programmation peuvent rencontrer des difficultés ou des erreurs silencieuses lors de son interprétation. L’utilisation d’un entier signé sur 64 bits pour stocker cet identifiant est sûre. Utilisez id_str pour obtenir l’identifiant en toute sécurité. Consultez X IDs pour plus d’informations. Exemple :“id”: 6253282 |
| id_str | String | La représentation sous forme de chaîne de caractères de l’identifiant unique de cet utilisateur. Les implémentations doivent utiliser ce champ plutôt que le grand entier, potentiellement difficile à exploiter, dans id. Exemple:“id_str”: “6253282” |
| name | String | Le nom de l’utilisateur, tel qu’il l’a défini. Il ne s’agit pas nécessairement du nom d’une personne. Généralement limité à 50 caractères, mais susceptible d’évoluer. Exemple: “name”: “API” |
| screen_name | String | Le nom d’écran, pseudo (@handle) ou alias avec lequel cet utilisateur s’identifie. Les screen_names sont uniques mais peuvent changer. Utilisez id_str comme identifiant d’utilisateur dans la mesure du possible. Généralement limité à 15 caractères maximum, mais certains comptes historiques peuvent avoir des noms plus longs. Exemple :“screen_name”: “api” |
| location | String | Nullable . Lieu défini par l’utilisateur pour le profil de ce compte. Il ne s’agit pas nécessairement d’un lieu et il peut ne pas être analysable automatiquement. Ce champ peut parfois être interprété de manière approximative par le service de recherche. Exemple : “location”: “San Francisco, CA” |
| derived | Tableau d’objets d’enrichissement | Réservé aux Enterprise APIs. Collection de métadonnées d’enrichissement dérivées pour l’utilisateur. Fournit les métadonnées d’enrichissement Profile Geo. Consultez la documentation associé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, associée à 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 | Lorsque la valeur est true, indique que cet utilisateur a choisi de protéger ses Publications. Voir À propos des Publications publiques et protégées. Exemple: “protected”: true |
| verified | Boolean | Lorsque true, indique que l’utilisateur possède 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 forte contrainte, ce champ indiquera temporairement « 0 ». Exemple: “followers_count”: 21 |
| friends_count | Int | Le nombre d’utilisateurs que ce compte suit (également appelés ses « comptes suivis »). Dans certaines conditions exceptionnelles, 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 Publications que cet utilisateur a aimées 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 |
| statuses_count | Int | Le nombre de Publications (y compris les retweets) publiées par l’utilisateur. Exemple : “statuses_count”: 42 |
| created_at | String | La date et l’heure UTC de création du compte utilisateur sur X. Exemple : “created_at”: “Mon Nov 29 21:18:15 +0000 2010” |
| profile_banner_url | String | L’URL HTTPS pointant vers la représentation web standard de la bannière de profil mise en ligne par l’utilisateur. En ajoutant un élément final de chemin à l’URL, il est possible d’obtenir différentes tailles d’image optimisées pour des affichages spécifiques. Pour les différentes tailles, veuillez consulter User Profile Images and Banners. Exemple : “profile_banner_url”: “https://si0.twimg.com/profile_banners/819797/1348102824” |
| profile_image_url_https | String | Une URL 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 | Booléen | Lorsque la valeur est true, indique que l’utilisateur n’a pas modifié le thème ou l’arrière-plan de son profil. Exemple : “default_profile”: false |
| default_profile_image | Booléen | Lorsque true, indique que l’utilisateur n’a pas mis en ligne 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 (non pris en charge)
| Field | 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 le nom tzinfo_name |
| lang | null | La valeur sera définie sur null. Toujours disponible via GET account/settings sous le nom language |
| geo_enabled | null | La valeur sera définie sur null. Toujours disponible via GET account/settings. Ce champ doit avoir la valeur 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 | Obsolète. La valeur sera définie sur null. |
| notifications | null | Obsolète. La valeur sera définie sur null. |
| profile_location | null | Obsolète. La valeur sera définie sur null. |
| contributors_enabled | null | Obsolète. La valeur sera définie sur null. |
| profile_image_url | null | Obsolète. 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 | Obsolète. La valeur sera définie sur null. |
| profile_background_image_url | null | Obsolète. La valeur sera définie sur null. |
| profile_background_image_url_https | null | Obsolète. La valeur sera définie sur null. |
| profile_background_tile | null | Obsolète. La valeur sera définie sur null. |
| profile_link_color | null | Obsolète. La valeur sera définie sur null. |
| profile_sidebar_border_color | null | Obsolète. La valeur sera définie sur null. |
| profile_sidebar_fill_color | null | Obsolète. La valeur sera définie sur null. |
| profile_text_color | null | Obsolète. La valeur sera définie sur null. |
| profile_use_background_image | null | Obsolète. La valeur sera définie sur null. |
| is_translator | null | Obsolète. La valeur sera définie sur null. |
| is_translation_enabled | null | Obsolète. La valeur sera définie sur null. |
| translator_type | null | Obsolète. La valeur sera définie sur null. |
Exemple d’objet utilisateur :
Objets de géolocalisation natifs enrichis
place est toujours présent lorsqu’une Publication est géolocalisée avec un lieu. Les lieux sont des emplacements spécifiques et nommés, avec des coordonnées géographiques associées. Lorsque les utilisateurs décident d’attribuer un lieu à leur Publication, 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 au moment de la publication. Les Publications associées à des Places ne proviennent pas nécessairement de ce lieu, mais peuvent aussi potentiellement porter sur ce lieu.
Les objets geo et coordinates ne sont présents (non nuls) que lorsque la Publication se voit attribuer un lieu exact. Si un lieu exact est fourni, l’objet coordinates fournira un tableau [long, lat] avec les coordonnées géographiques, et un X Place correspondant à ce lieu sera attribué.
Dictionnaire de données Place
| Champ | Type | Description |
|---|---|---|
| id | String | ID représentant ce lieu. Notez qu’il est représenté sous forme de chaîne, et non d’entier. Exemple : “id”:“01a9a39529b27f36” |
| url | String | URL pointant vers des métadonnées supplémentaires pour ce lieu. Exemple : “url”:“https://api.x.com/1.1/geo/id/01a9a39529b27f36.json” |
| place_type | String | Type de lieu représenté par cet objet Place. Exemple : “place_type”:“city” |
| name | String | Représentation courte et lisible par un humain du nom du lieu. Exemple : “name”:“Manhattan” |
| full_name | String | Représentation complète et lisible par un humain du nom du lieu. Exemple : “full_name”:“Manhattan, NY” |
| country_code | String | Code pays abrégé représentant le pays où se trouve ce lieu. Exemple : “country_code”:“US” |
| country | String | Nom du pays où se trouve 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 | Lors de l’utilisation de PowerTrack, des API 30-Day et Full-Archive Search, et de Volume Streams, ce hachage a la valeur null. Exemple : “attributes”: |
| Field | Type | Description |
| coordinates | Array of Array of Array of Float | Une série de points de longitude et de latitude qui définissent une boîte englobante (bounding box) contenant l’entité Place à laquelle cette bounding box est associée. Chaque point est un tableau de la forme [longitude, latitude]. Les points sont regroupés dans un tableau par bounding box. Les tableaux de bounding box 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 données codées dans la propriété coordinates. Cette valeur sera “Polygon” pour les bounding boxes et “Point” pour les Publications avec des coordonnées exactes. Exemple : “type”:“Polygon” |
Dictionnaire de données de l’objet Geo
| Champ | Type | Description |
| coordinates | Collection de Float | La longitude et la latitude de l’emplacement de la Publication, sous forme de collection au format [latitude, longitude]. Exemple : ** “geo”: “type”:** “Point”, ** “coordinates”: [ 54.27784, -0.41068 ] ** |
| type | String | Le type de données représenté dans la propriété coordinates. Cette valeur sera “Point” pour les champs de coordonnées d’une Publication. Exemple : “type”: “Point” |
| Champ | Type | Description |
| coordinates | Collection de Float | La longitude et la latitude de l’emplacement de la Publication, sous forme de collection au format [longitude, latitude]. Exemple : ** “coordinates”: “type”:** “Point”, ** “coordinates”: [ -0.41068, 54.27784 ] ** |
| type | String | Le type de données représenté dans la propriété coordinates. Cette valeur sera “Point” pour les champs de coordonnées d’une Publication. Exemple : “type”: “Point” |
Emplacements dérivés
| Champ | Type | Description |
| derived | locations object | Emplacement 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
Introduction
Les entités fournissent des métadonnées et des informations contextuelles supplémentaires sur le contenu publié sur X. La sectionentities fournit des tableaux d’éléments courants inclus dans les Publications : hashtags, mentions d’utilisateurs, liens, codes mnémoniques boursiers (symboles), sondages X et médias associés. Ces tableaux sont pratiques pour les développeurs lors de l’ingestion de Publications, puisque X a en pratique prétraité, ou pré-analysé, le corps du texte. Au lieu d’avoir à rechercher et trouver explicitement ces entités dans le corps de la Publication, votre parseur peut aller directement à cette section JSON, où elles se trouvent déjà.
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’Enhanced URLs enrichment, 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’identifiant utilisateur numérique, ce qui est utile lorsque vous effectuez des requêtes vers de nombreuses X API.
Chaque charge utile JSON de Publication 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 de la Publication. Par exemple, si vous examinez le JSON d’une Publication dont le corps est « Hello World! » et sans média associé, le JSON de la Publication inclura le contenu suivant, avec des tableaux d’entités contenant zéro élément :
- les entités media et polls n’apparaîtront que lorsque ce type de contenu fera partie de la Publication.
- si vous travaillez avec des médias natifs (photos, vidéos ou GIFs), l’Extended Entities object 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 pour chacun de ces objets d’entité, ainsi que des dictionnaires de données qui décrivent les noms d’attributs de l’objet, leurs types et une brève description. Nous indiquerons également quels opérateurs PowerTrack s’appliquent à ces attributs et fournirons quelques exemples de charges utiles JSON.
Une collection d’entités courantes présentes dans les Publications, notamment les hashtags, les liens et les mentions d’utilisateurs. Cet objet entities inclut bien un attribut media, mais son implémentation dans la section entiites n’est entièrement exacte que pour les Publications contenant une seule photo. Pour toutes les Publications comportant plus d’une photo, une vidéo ou un GIF animé, le lecteur est renvoyé à la section extended_entities.
Dictionnaire de données des entités
entities est un conteneur de tableaux d’autres sous‑objets d’entité. Après avoir présenté la structure de entities, des dictionnaires de données pour ces sous‑objets, ainsi que les opérateurs qui permettent de les faire correspondre, seront fournis.
| Champ | Type | Description |
|---|---|---|
| hashtags | Tableau d’objets Hashtag | Représente les hashtags extraits du texte de la Publication. Exemple : “hashtags”: [ “indices”: [ 32, 38 ], “text”: “nodejs” ] |
| media | Tableau d’objets média | Représente les éléments multimédias envoyés avec la Publication. 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 présentes dans le texte d’une Publication. 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 As long as trolls are still trolling, the Rick will never stop rolling.” , “indices”: [ 62, 85 ] ] |
| user_mentions | Tableau d’objets de mentions d’utilisateurs | Représente les autres utilisateurs de X mentionnés dans le texte de la Publication. Exemple : “user_mentions”: [ “name”: “X API”, “indices”: [ 4, 15 ], “screen_name”: “xapi”, “id”: 6253282, “id_str”: “6253282” ] |
| symbols | Tableau d’objets Symbol | Représente des symboles, c’est-à-dire des $cashtags, inclus dans le texte de la Publication. Exemple : “symbols”: [ “indices”: [ 12, 17 ], “text”: “twtr” ] |
| polls | Tableau d’objets Poll | Représente les sondages X inclus dans la Publication. Exemple : “polls”: [ “options”: [ “position”: 1, “text”: “Je lis la documentation une fois.” , “position”: 2, “text”: “Je lis 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
entities contiendra un tableau hashtags contenant un objet pour chaque hashtag inclus dans le corps de la Publication, 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 correspondra s’il y a au moins un élément dans le tableau.
| Champ | Type | Description |
| indices | Array of Int | Un tableau d’entiers indiquant les décalages dans le texte de la Publication où le hashtag commence et se termine. Le premier entier représente l’emplacement du caractère # dans la chaîne de texte de la Publication. 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 correspondra à la longueur du nom du hashtag plus un (pour le caractère « # »). Exemple : “indices”:[32,38] |
| text | String | Nom du hashtag, sans le caractère « # » initial. Exemple : “text”:“nodejs” |
Objet média
entities contiendra un tableau media contenant un seul objet média si un objet média a été « associé » à la Publication. Si aucun média natif n’a été associé, 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 de la Publication :
- Le
typede média indiquera toujours « photo », même lorsqu’une vidéo ou un GIF est associé à la Publication. - Même si jusqu’à quatre photos peuvent être associées, seule la première sera répertoriée dans la section
entities.
has:media donnera une correspondance si ce tableau contient au moins un élément.
| Champ | Type | Description |
| display_url | String | URL du média à afficher aux utilisateurs. Exemple : “display_url”:“pic.x.com/rJC5Pxsu” |
| expanded_url | String | Version développée de display_url. Renvoie à la page d’affichage du média. Exemple : “expanded_url”: “http://x.com/yunorno/status/114080493036773378/photo/1” |
| id | Int64 | Identifiant du média exprimé sous la forme d’un 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 | Tableau d’entiers (Int) | Un tableau d’entiers indiquant les décalages dans le texte de la Publication où commence et se termine l’URL. Le premier entier représente l’emplacement du premier caractère de l’URL dans le texte de la Publication. Le deuxième entier représente l’emplacement du premier caractère ne faisant pas partie de l’URL apparaissant après l’URL (ou la fin de la chaîne si l’URL constitue la dernière partie du texte de la Publication). Exemple : “indices”:[15,35] |
| media_url | String | Une URL http:// qui pointe directement vers le fichier média mis en ligne. 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 récupérée en signant une requête avec le jeton d’accès de l’utilisateur à l’aide d’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 savoir comment tenir compte de ces changements récents. Vous ne pouvez pas intégrer directement ces images dans une page web. Voir Formatage des URL de médias photo pour savoir comment formater l’URL d’une photo, telle que media_url_https, en fonction des sizes disponibles. |
| media_url_https | String | Une URL https:// qui pointe directement vers le fichier média téléversé, pour l’intégration dans des pages en https. Exemple : “media_url_https”:“https://p.twimg.com/AZVLmp-CIAAbkyy.jpg” Pour les médias dans les messages directs, media_url_https doit être récupéré en signant une requête avec le jeton d’accès de l’utilisateur à l’aide d’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 savoir comment prendre en compte ces changements récents. Vous ne pouvez pas intégrer directement ces images dans une page web. Voir Photo Media URL formatting pour savoir comment formater l’URL d’une photo, telle que media_url_https, en fonction des sizes disponibles. |
| sizes | Objet Size | Un objet qui présente 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 Photo Media URL formatting pour savoir comment formater l’URL d’une photo, comme media_url_https, en fonction des sizes disponibles. |
| source_status_id | Int64 | Nullable. Pour les Publications contenant un média initialement associé à une autre Publication, cet identifiant pointe vers la Publication d’origine. Exemple : “source_status_id”: 205282515685081088 |
| source_status_id_str | Int64 | Peut être nul. Pour les Publications contenant des médias qui étaient à l’origine associés à une autre publication, cet identifiant sous forme de chaîne de caractères pointe vers la Publication d’origine. Exemple: “source_status_id_str”: “205282515685081088” |
| type | String | Type du média téléversé. Les types possibles sont photo, vidéo et animated_gif. Exemple: “type”:“photo” |
| url | String | URL encapsulée pour le lien média. Cela correspond à l’URL intégrée directement dans le texte brut de la Publication, ainsi qu’aux valeurs du paramètre indices. Exemple :“url”:“http://t.co/rJC5Pxsu” |
Objets de taille des médias
Objet sizes
| Champ | type | Description |
| thumb | Size Object | Informations pour 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 150x150 et seront recadrées. |
| large | Size Object | Informations pour une version grande du média. Exemple : “large”:“h”:454, “resize”:“fit”, “w”:680} Les photos au petit format seront limitées à s’adapter à une zone de 680x680. |
| medium | Size Object | Informations pour une version moyenne du média. Exemple : “medium”:“h”:800, “resize”:“fit”, “w”:1200} Les photos au format moyen seront limitées à s’adapter à une zone de 1200x1200. |
| small | Size Object | Informations pour une version petite du média. Exemple : “small”:“h”:1366, “resize”:“fit”, “w”:2048} Les photos au grand format seront limitées à s’adapter à une zone de 2048x2048. |
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 de fit indique que le média a été redimensionné pour s’adapter à une dimension, tout en conservant son rapport hauteur/largeur natif. Une valeur de crop indique que le média a été recadré afin de s’adapter à une résolution spécifique. Exemple : “resize”:“crop” |
Formatage des URL de média photo
media_url ou media_url_https peuvent être chargées telles quelles, ce qui aura pour effet de charger par défaut la variante medium. Il est toutefois préférable de fournir, lorsque c’est possible, une URL de média photo entièrement formatée.
Une URL de média photo comporte trois parties :
| Base URL | La base URL est l’URL du média sans l’extension de fichier. Par exemple : “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, La base URL est donc : https://pbs.twimg.com/media/DOhM30VVwAEpIHq |
| Format | Le format est le type de photo sous lequel l’image est encodée. Les formats possibles sont jpg ou png, qui sont fournis comme extension de l’URL du média. Par exemple : “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, Le format est donc : jpg |
| Name | Le nom est le nom de champ de la 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 lors du chargement de la photo en grande taille serait : large |
| Format hérité | L’ancien format 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 |
| Format moderne | Le format moderne pour le chargement des photos a été établi chez X en 2015 et est devenu le format 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 de la chaîne de requête de l’URL du média photo sont classés par ordre alphabétique. Si le chargement des médias devait ajouter de nouveaux éléments de requête, il faudrait continuer à respecter cet ordre alphabétique. Par exemple, s’il existait un nouvel élément de requête hypothétique nommé preferred_format, il apparaîtrait après format et name dans la chaîne de requête. |
Objet URL
entities contiendra un tableau urls incluant un objet pour chaque lien présent dans le corps de la Publication, et inclura un tableau vide si aucun lien n’est présent.
L’opérateur has:links correspondra s’il y a au moins un élément dans le tableau. L’opérateur url: est utilisé pour faire correspondre l’attribut expanded_url. Si vous utilisez l’enrichissement Expanded URL, l’opérateur url: est utilisé pour faire correspondre l’attribut unwound.url (URL complètement déroulée). Si vous utilisez l’enrichissement Enhanced URL, les opérateurs url_title: et url_decription: sont utilisés pour faire correspondre les attributs unwound.title et unwound.description.
| Field | Type | Description |
| display_url | String | URL collée/saisie dans la Publication. 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 de la Publication où l’URL commence et se termine. Le premier entier représente l’emplacement du premier caractère de l’URL dans le texte de la Publication. Le second entier représente l’emplacement du premier caractère qui ne fait pas partie de l’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 de la Publication, ainsi qu’aux valeurs du paramètre indices. Exemple : “url”:“https://t.co/yzocNFvJuL” |
unwound :
| Field | Type | Description |
| url | String | Version complètement déroulée du lien inclus dans la Publication. 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, une valeur « 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
entities contient un tableau user_mentions qui comprend un objet pour chaque mention d’utilisateur incluse dans le corps de la Publication, et 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 de caractères. Exemple : “id_str”:“6253282” |
| indices | Array of Int | Un tableau d’entiers représentant les positions dans le texte de la Publication où la référence à l’utilisateur commence et se termine. Le premier entier représente l’emplacement du caractère « @ » de la mention d’utilisateur. Le deuxième entier représente l’emplacement du premier caractère qui ne fait pas partie du screen_name suivant la mention d’utilisateur. Exemple : “indices”:[4,15] |
| name | String | Nom d’affichage de l’utilisateur mentionné. Exemple : “name”:“API” |
| screen_name | String | Nom d’utilisateur (screen_name) de l’utilisateur mentionné. Exemple : “screen_name”:“api” |
Objet Symbol
entities contient un tableau symbols qui comporte un objet pour chaque $cashtag inclus dans le corps de la Publication, et inclut un tableau vide si aucun symbole n’est présent.
L’opérateur PowerTrack $ est utilisé pour faire correspondre la valeur de l’attribut text. L’opérateur has:symbols correspondra s’il y a au moins un élément dans le tableau.
| Champ | Type | Description |
| indices | Tableau d’entiers | Un tableau d’entiers indiquant les positions dans le texte de la Publication 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 de sondage
entities contient un tableau polls contenant un seul objet poll si la Publication contient un sondage. Si aucun sondage n’est inclus, il n’y aura pas de tableau polls dans la section entities.
Notez que ces métadonnées de sondage ne sont disponibles qu’avec les API Entreprise suivantes :
- Volume streams (Decahose )
- Real-time PowerTrack
- API de recherche X (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 pour cette position. Exemple : “options”: [ “position”: 1, “text”: “I read documentation once.” } ] } |
| end_datetime | String | Horodatage (UTC) de la 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













http://wapo.st/2w8iwPQ #Testing
Dans l’exemple ci-dessus, l’URL et le hashtag ont tous deux été affectés. Étant donné que le hashtag a été complètement tronqué et l’URL partiellement tronquée, ceux-ci sont absents des entités de niveau supérieur. Vous remarquerez également l’entité de niveau supérieur user_mentions supplémentaire provenant du préfixe « RT @floodsocial: » dans le champ text.
Cependant, le texte de la Publication et les entités dans retweeted_status reflètent parfaitement la Publication originale, sans troncation ni entités incorrectes, d’où notre recommandation de se fier à l’objet imbriqué retweeted_status pour les Retweets.
Tweets cités
Les Tweets cités ont été introduits en 2016 et diffèrent des Retweets en ceci que lorsque vous « citez » une Publication, vous ajoutez un nouveau contenu « par-dessus » une Publication partagée. Ce nouveau contenu peut inclure quasiment tout ce qu’une Publication originale peut contenir, notamment du nouveau texte, des hashtags, des mentions et des URL. Les Tweets cités peuvent contenir des médias natifs (photos, vidéos et GIF) et apparaissent dans l’objet entities. Étant donné que des entités X peuvent être ajoutées, les entités du Tweet cité sont probablement différentes des entités d’origine. Dans cet exemple, une nouvelle URL et un nouveau hashtag ont été placés à la fin du Tweet cité. Cette Publication, https://x.com/FloodSocial/status/907983973225160704, contient le texte de Publication suivant : étrange et tout aussi tragique lorsque des îles sont inondées… test transatlantique des Tweets cités | @thisuser @thatuserhttp://bit.ly/2vMMDuu #testing Dans ce cas, les entités de niveau supérieur ne reflètent pas les détails du Tweet cité. En revanche, le texte de la Publication et les entities dans extended_tweet reflètent parfaitement le Tweet cité, sans troncature ni entités incorrectes, d’où notre recommandation de vous appuyer sur l’objet _extended_tweet _object imbriqué pour les Tweets cités.Entités pour l’objet utilisateur
Exemple de JSON
Entités étendues de X
Introduction
extended_entities. L’objet extended_entities contient un unique tableau media d’objets media (voir la section entities pour son dictionnaire de données). Aucun autre type d’entité, comme les hashtags et les liens, n’est inclus dans la section extended_entities. L’objet media dans la section extended_entities est identique, en termes de structure, à celui inclus dans la section entities.
Les Publications ne peuvent avoir qu’un seul type de média associé. Pour les photos, jusqu’à quatre photos peuvent être jointes. Pour les vidéos et les GIF, une seule peut être jointe. Comme, dans la section extended_entities, la métadonnée de type de média type indique correctement le type de média (« photo », « video » ou « animated_gif ») et prend en charge jusqu’à quatre photos, il s’agit de la source de métadonnées privilégiée pour les médias natifs.
Exemples de Publications et de charges utiles JSON
Voici la section
entities pour cette Publication :
extented_entities pour cette Publication :
Publication 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, comme title, description et le embeddable flag. Le contenu vidéo n’est disponible que pour les clients officiels de X lorsque embeddable=false. Dans ce cas, toutes les URL vidéo fournies dans la charge utile pointeront vers X, afin que l’utilisateur puisse ouvrir la vidéo dans une propriété appartenant à X en cliquant sur le lien.
Voici un exemple de ce à quoi ressemblera l’objet extended entities dans cette situation :
entities où le champ type est incorrectement défini sur « photo ». Là encore, la section extended_entities est à privilégier pour tous les types de médias natifs, y compris « video » et « animated_gif ».
Publication avec un GIF animé
Vous trouverez ci-dessous les métadonnées des extended entities pour cette Publication avec un GIF animé :
Exemples de charges utiles « Native Enriched »
Publication
Réponse à une publication
Publication étendue
Publication avec extended_entities
Retweet
Tweet cité
Retweet d’une citation de Tweet
Objets de données Enterprise Activity Streams
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 métadonnées depuis 2017, telles que les métadonnées 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 métadonnées ou de nouveaux enrichissements depuis la mise à jour du nombre de caractères en 2017.
Objet Activity
Dictionnaire de données
| Attribut | Type | Description |
| id | chaîne de caractères | Un IRI unique pour la publication. Plus précisément, “tag” est le schéma, “search.x.com” représente le domaine pour ce schéma, et 2005 est l’année où le schéma a été élaboré. Lors de l’enregistrement des Publications, il doit être utilisé comme identifiant unique ou clé primaire. “id”: “tag:search.x.com,2005:1050118621198921728” |
| objectType | chaîne de caractères | Type d’objet, toujours égal à “activity” “objectType”: “activity” |
| object | objet | Un objet représentant la Publication en cours de création ou de partage. Pour les Retweets, il contiendra une “activity” complète, avec les champs pertinents décrits dans ce schéma. Pour les Publications originales, il contiendra un objet “note”, avec les champs décrits ici. “object”: “object”: “objectType”: “note”, “id”: “object:search.x.com,2005:1050118621198921728”, “summary”: “Afin de laisser plus de place à l’expression, nous compterons désormais tous les emojis de la même façon — y compris ceux avec genre et couleur de peau t… https://t.co/MkGjXf9aXm”, “link”: “http://x.com/API/statuses/1050118621198921728”, “postedTime”: “2018-10-10T20:19:24.000Z” |
| long_object | objet | Un objet représentant le texte intégral si le texte de la publication dépasse 140 caractères. “long_object”: “body”: “Pour laisser plus de place à l’expression, nous compterons désormais tous les emojis de la même façon — y compris ceux avec des modificateurs de genre et de couleur de peau 👍🏻👍🏽👍🏿. Ceci est désormais pris en compte dans Twitter-Text, notre bibliothèque open source. \n\nVous utilisez Twitter-Text ? Consultez la publication du forum pour plus de détails : 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 | tableau | si le texte de la Publication dépasse les 140 caractères. “display_text_range”: [ 0, 142 ] |
| verb | chaîne de caractères | Le type d’action réalisée par l’utilisateur. Publications, “post” Retweets, “share” Publications supprimées, “delete” Le verbe est le moyen approprié de distinguer un Tweet d’un véritable Retweet. Cependant, cela s’applique uniquement aux véritables Retweets, et non aux Tweets modifiés ou cités, qui n’utilisent pas la fonctionnalité de Retweet de X. Pour une description des verbes AS cliquez ici. Pour les Deletes, notez qu’un nombre limité de champs sera inclus, comme indiqué dans l’exemple de payload ci-dessous. “verb”: “post” |
| postedTime | date au format ISO 8601 | L’heure à laquelle l’action s’est produite, par exemple le moment où la Publication a été créée. “postedTime”: “2018-10-10T20:19:24.000Z” |
| generator | objet | Un objet représentant l’outil utilisé pour publier la Publication. Il contiendra le nom (“displayName”) et un lien (“link”) pour l’application source qui génère la Publication. “generator”: “displayName”: “X Web Client”, “link”: “http://x.com” |
| provider | objet | Un objet JSON représentant le fournisseur de l’activité. Il comporte 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 | chaîne de caractères | Un permalien vers la Publication. “link”: “http://x.com/API/statuses/1050118621198921728” |
| body | chaîne de caractères | Le texte de la publication. Dans les Retweets, notez que X modifie la valeur de body au niveau de la racine en ajoutant “RT @username” au début, et en tronquant le texte original puis en ajoutant des points de suspension à la fin. Ainsi, pour les Retweets, votre App doit se référer à object.body afin de s’assurer qu’elle extrait le texte non modifié de la Publication originale (qui est retweetée). “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 | tableau | Décrit l’intervalle de caractères dans le texte du champ body qui indique la Publication affichée. Les Publications commençant par des @mentions auront une valeur de début supérieure à 0 et les Publications accompagnées de médias ou dépassant 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 | objet | Un objet représentant l’utilisateur X qui a publié. L’Actor Object fait référence à un utilisateur X et contient toutes les métadonnées pertinentes pour cet utilisateur. Voir les détails de l’Actor Object |
| inReplyTo | objet | Un objet JSON faisant référence à la Publication à laquelle on répond, le cas échéant. Contient un lien vers la Publication. “inReplyTo”: “link”: “http://x.com/GOP/statuses/349573991561838593” |
| location | objet | Un objet JSON représentant l’objet « Place » de X correspondant à l’endroit où la Publication a été créée. Il s’agit d’un objet transmis tel quel depuis la plateforme X. Voir objet de localisation |
| twitter_entities | objet | L’objet entities du format de données de X, qui contient des listes d’URL, de mentions et de hashtags. Pour plus d’informations, consultez la documentation de X sur les « Entities ». Notez que, dans les Retweets, X peut tronquer les valeurs des entities qu’il extrait au niveau racine. Ainsi, pour les Retweets, votre application doit consulter object.twitter_entities afin de s’assurer que vous utilisez des valeurs non tronquées. Voir les détails de l’objet twitter_entities |
| twitter_extended_entities | objet | Un objet du format de données natif de X qui contient le champ “media”. Il sera présent pour toute Publication dans laquelle l’objet twitter_entities contient des données dans le champ “media”, et inclura plusieurs photos lorsqu’elles sont présentes dans la Publication. Notez qu’il s’agit de l’endroit approprié pour récupérer les informations relatives aux médias pour les Publications comportant plusieurs photos. Plusieurs photos sont représentées par des objets JSON séparés par des virgules au sein du tableau “media”. Voir les détails de l’objet twitter_extended_entities |
| gnip | objet | Objet ajouté à la charge utile d’activité pour indiquer les règles de correspondance et ajouter des données enrichies, en fonction des enrichissements actifs sur le flux ou le produit. Voir les détails de l’objet gnip |
| edit_history | Object | Identifiants uniques correspondant à toutes les versions d’une Publication. Pour les Publications sans modification, il y aura un seul ID. Pour les Publications avec un historique de modifications, il y aura plusieurs ID, classés par ordre croissant, reflétant l’ordre des modifications, la version la plus récente occupant la dernière position du tableau. Les ID de Publication peuvent être utilisés pour hydrater et afficher les versions précédentes d’une Publication. Exemple : edit_history”: “initial_tweet_id”: “1283764123” “edit_tweet_ids”: [“1283764123”, “1394263866”] |
| edit_controls | Object | Lorsqu’il est présent, indique pendant combien de temps une Publication reste modifiable et le nombre de modifications restantes. Les Publications ne sont modifiables que pendant les 30 premières minutes suivant leur création et peuvent être modifiées jusqu’à cinq fois. Les id de Publication peuvent être utilisés pour hydrater et afficher les versions précédentes d’une Publication. Exemple : “edit_controls”: “editable_until_ms”: 123 “edits_remaining”: 3 |
| editable | Boolean | Lorsqu’il est présent, indique si une Publication était éligible à la modification au moment de sa publication. Ce champ n’est pas dynamique et ne passera pas de True à False lorsque la Publication atteint sa limite de temps de modification ou son nombre maximal de modifications. Les caractéristiques de Publication suivantes feront que ce champ aura la valeur False : * La Publication est promue * La Publication contient un sondage * La Publication est une réponse dans un fil qui n’est pas le sien * La Publication est un retweet (notez que les Quote Tweets sont éligibles à la modification) * La Publication est nullcast * Publication de communauté * Publication Superfollow * Publication collaborative |
Attributs supplémentaires de la publication
| Attribut | Type | Description |
|---|---|---|
| twitter_lang | string | |
| favoritesCount | int | Nullable. Indique approximativement combien de fois cette publication a été ajoutée aux favoris par des utilisateurs de X. “favoritesCount”:298 |
| retweetCount | int | Nombre de fois où cette publication a été retweetée. Exemple : “retweetCount”:153 |
Attributs obsolètes
| Champ | Type | Description |
| geo | object | Position géographique (point) où la Publication a été créée. |
| twitter_filter_level | string | Champ obsolète conservé pour éviter une modification rompant la rétrocompatibilité |
Objets d’activité de Publication 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
| Attribute | 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. Ce n’est pas nécessairement le nom d’une personne. Généralement limité à 50 caractères, mais sujet à modification. Exemple : “displayName”: “XDevelopers” |
| preferredUsername | string | Le nom d’écran, identifiant ou alias avec lequel cet utilisateur s’identifie. Unique mais sujet à modification. Utilisez id comme identifiant d’utilisateur lorsque c’est possible. Généralement d’une longueur maximale de 15 caractères, mais certains comptes historiques peuvent exister avec 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 en association avec son profil. Exemple : ** “links”: [ { “href”:** “https://developer.x.com/en/community”, “rel”: “me” ** } ]** |
| summary | string | Nullable. La chaîne UTF-8 définie par l’utilisateur décrivant son compte. Exemple : “summary”: “The voice of the #XDevelopers team…“ |
| protected | Boolean | Lorsque la valeur est true, indique que cet utilisateur a choisi de protéger ses Publications. Voir À propos des Publications publiques et protégées. Exemple : “protected”: true |
| verified | Boolean | Lorsque la valeur est true, indique que l’utilisateur dispose d’un compte vérifié. Voir Comptes vérifiés. Exemple : “verified”: false |
| followersCount | Int | Le nombre d’abonnés que ce compte a actuellement. Dans certaines conditions de forte charge, ce champ indiquera temporairement « 0 ». Exemple : “followers_count”: 21 |
| friendsCount | Int | Le nombre d’utilisateurs que ce compte suit (également appelés « abonnements »). Dans certaines conditions de forte charge, 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 Publications que cet utilisateur a aimées au cours de la durée de vie du compte. L’orthographe britannique est utilisée dans le nom du champ pour des raisons historiques. Exemple : “favourites_count”: 13 |
| statusesCount | Int | Le nombre de Publications (y compris les retweets) émises 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 basée sur 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 (deprecated)
| Champ | Type | Description |
|---|---|---|
| utcOffset | null | La valeur sera définie sur null. Toujours disponible via GET account/settings |
| twitterTimeZone | null | La valeur sera définie sur null. Toujours disponible via GET account/settings en tant que tzinfo_name |
| languages | null | La valeur sera définie sur null. Toujours disponible via GET account/settings en tant que language |
Exemples :
Location Object
Dictionnaire de données Location
| Champ | Type | Description |
|---|---|---|
| objectType | string | Voir ici pour plus d’informations détaillées. Exemple : “objectType”: “place” |
| displayName | string | Le nom complet du lieu. ****“displayName”: “United States” |
| name | string | Nom du lieu, issu du format JSON « place » 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 | L’objet de 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 contenant ce lieu. Exemple : “countryCode”: “US |
| country | String | Nom du pays contenant ce lieu. Exemple : **“country”: **“United States” |
objets dérivés de profileLocations
| Field | Type | Description |
| address | object | Dans l’objet location de profileLocation au sein de l’objet GNIP. Adresse de l’emplacement dérivée par 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 dérivées par l’enrichissement géographique du profil. ”geo”: { ** “coordinates”: [ -98.5, 39.76 ], “type”: “point” }** |
Objet X entities
twitter_entities a le même format et utilise le même dictionnaire de données que l’objet entities du format enrichi natif.
Exemple :
Objet X extended entities
twitter_extended_entities utilise le même format et le même dictionnaire de données que ceux présentés dans le format enrichi natif, voir l’objet X extended_entities ici.
Exemple :
Objet Gnip
gnip, dans le format Activity Streams, contient les métadonnées ajoutées par les enrichissements actifs, ainsi que des indications sur les règles de correspondance appliquées à l’activité.
Dictionnaire de données
| Champ | Type | Description |
| matching_rules | array | Contient un tableau d’objets de règles de correspondance qui indiquent 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 de l’URL développée fournies par l’enrichissement URL Unwinding. ** “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 de localisation 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 pour les flux d’activité
twitter_extended_entities
Chronologie des métadonnées de Tweet
Introduction**
Au fond, X est un réseau de communication public, en temps réel et mondial. Depuis 2006, l’évolution de X est guidée à la fois par les modes d’utilisation et les conventions des utilisateurs, ainsi que par de nouvelles fonctionnalités et améliorations produits. Si vous utilisez des données X pour de la recherche historique, comprendre la chronologie de cette évolution est important pour faire émerger, à partir de l’archive de données, les Publications qui vous intéressent. X a été lancé comme une simple application mobile SMS et est devenu une plateforme de communication complète, avec un ensemble complet d’API. Les API ont toujours été un pilier du réseau X. La première API est arrivée très peu de temps après le lancement de X. Lorsque la géolocalisation des Publications a été introduite pour la première fois en 2009, elle a été proposée via une Geo API (et plus tard, la possibilité de « géolocaliser » une Publication a été intégrée à l’interface utilisateur de X.com). Aujourd’hui, les API de X alimentent le réseau de communication bidirectionnel qui est devenu une source d’actualités de dernière minute et de partage d’informations. Les possibilités de développer par‑dessus ce canal de communication mondial et en temps réel sont infinies. X met à disposition deux API historiques qui offrent un accès à chaque Publication rendue publique : Historical PowerTrack et la Full-Archive Search API. Les deux API proposent un ensemble d’opérateurs utilisés pour interroger et collecter les Publications d’intérêt. Ces opérateurs effectuent des correspondances sur une variété d’attributs associés à chaque Publication, des centaines d’attributs tels que le contenu textuel de la Publication, le nom de compte de l’auteur et les liens partagés dans la Publication. Les Publications et leurs attributs sont encodés en JSON, un format d’échange de données textuel courant. Ainsi, à mesure que de nouvelles fonctionnalités ont été introduites, de nouveaux attributs JSON sont apparus et, en général, de nouveaux opérateurs d’API ont été ajoutés pour effectuer des correspondances sur ces attributs. Si votre cas d’usage implique un besoin d’écouter ce que le monde a dit sur X, plus vous comprenez à quel moment les opérateurs ont commencé à disposer de métadonnées JSON auxquelles les faire correspondre, plus vos filtres Historical PowerTrack pourront être efficaces. Ensuite, nous présenterons quelques concepts clés qui posent le cadre pour comprendre comment les mises à jour des métadonnées de Publication influent sur la capacité à trouver le signal de données qui vous intéresse.Concepts clés**
Des conventions utilisateurs aux objets de première classe de X
Métadonnées de Publication, mutabilité, mises à jour et actualité
Médias « natifs »
has:videos, has:images et has:media. Ceux-ci ne renvoient que des contenus média qui ont été partagés 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 qui se basent sur les métadonnées d’URL.
Avant donc d’entrer dans les détails produits de Historical PowerTrack et Full-Archive Search, faisons un tour 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électionnée de X. La plupart de ces mises à jour de X ont, d’une manière ou d’une autre, fondamentalement affecté le comportement des utilisateurs, le contenu JSON des Publications, les opérateurs de requête, ou les trois à la fois. Si l’on considère 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 Publications. 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 globalement précise mais non exhaustive.
2006
- Octobre
- @replies devient une convention d’usage.
- Les cashtags deviennent des liens cliquables et recherchables en juin 2012.
- Novembre - Introduction des favoris.
2007
- janvier - les @replies deviennent un type d’objet à part entière avec un bouton Répondre dans l’interface utilisateur et des métadonnées
in_reply_to. - avril - les Retweets deviennent une convention.
- août - les #hashtags apparaissent comme un outil principal pour rechercher et organiser les Publications.
2009
- Février - les $cashtags deviennent d’usage courant pour discuter des symboles boursiers.
- Mai - la version « bêta » des Retweets est introduite avec « Via @ » ajouté au début du corps de la Publication.
- Juin - introduction des comptes vérifiés.
- Août - les Retweets deviennent un objet de première classe avec le motif « RT @ » et les nouvelles métadonnées
retweet_status. - Octobre - fonctionnalité de Listes lancée.
- Novembre - l’API de géolocalisation des Publications est lancée, offrant pour la première fois aux utilisateurs un moyen de partager leur position via des applications tierces.
2010
- Juin - X Places est lancé pour géolocaliser les Publications.
- Août - Le bouton de Publication pour les sites web est lancé. Il simplifie le partage de liens.
2011
- Mai - Lancement du bouton « Follow », qui facilite le suivi des comptes associés à des sites web.
- Août - Introduction des photos natives.
2012
- Juin - les $Cashtags deviennent des liens cliquables et recherchables.
2014
- mars - Identification des personnes sur les photos et prise en charge de jusqu’à quatre photos. Les métadonnées Extended X Entities ont été introduites.
- avril - Les émojis sont pris en charge nativement dans l’interface utilisateur de X. Les émojis étaient couramment utilisés dans les Publications depuis au moins 2008.
2015
- Avril - Une modification de l’interface utilisateur de publication de X entraîne une diminution du nombre de Publications géolocalisées.
- 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 de 5 minutes à sept jours. Les métadonnées de sondage ont été mises à disposition (format natif enrichi uniquement) en février 2017.
2016
- Février - GIFs pouvant être recherchés, hébergés nativement dans l’éditeur de Publication.
- Mai - « Doing More with 140 » (dmw140) annoncé, présentant des nouveautés dans la gestion des réponses (Replies) et des médias joints par rapport à la limite de 140 caractères d’une Publication.
- Juin - Prise en charge native de la vidéo
- Juin - Mise à disposition générale des Retweets cités.
- Juin - Autocollants introduits pour les photos.
- Septembre - Introduction des « native attachments » avec l’URL finale non comptabilisée dans les 140 caractères (« dmw140, part 1 »).
2017
- Février - Les métadonnées de sondage X sont incluses dans les métadonnées de Publication (format natif enrichi uniquement).
- Avril - Introduction de « Simplified Replies », avec les comptes auxquels il est répondu qui ne sont pas comptabilisés dans la limite de 140 caractères (« dmw140, part 2 »).
- Mai - Mises à jour RGPD : 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 modifications de formatage de quoteTweet
- 29 septembre - La possibilité de modifier des Publications est déployée auprès d’un petit groupe de test. Les métadonnées des Publications modifiées sont ajoutées à l’objet Publication lorsque c’est pertinent. Celles-ci incluent les objets edit_history et edit_controls. Ces métadonnées ne seront pas renvoyées pour les Publications créées 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 la modification des Publications, consultez les principes fondamentaux de la modification des Publications
lang:, qui est utilisé pour faire correspondre des Publications dans une langue donnée. X fournit un service de classification linguistique (prenant en charge plus de 50 langues), et les API X fournissent ces métadonnées dans le JSON généré pour chaque Publication. Ainsi, si une Publication est écrite 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 messages de Publication classés comme espagnols.
Les informations de chronologie peuvent également aider à mieux interpréter les données de Publication reçues. Supposons que vous recherchiez le partage de contenu à propos des Jeux olympiques d’été de 2008 et 2012. Si vous appliquez uniquement l’opérateur is:retweet pour faire correspondre les Retweets, aucune donnée ne correspondra en 2008. Cependant, pour 2012, il y aurait probablement des millions de Retweets. À partir de cela, vous pourriez potentiellement conclure à tort qu’en 2008 les Retweets n’étaient pas une convention d’utilisation, ou que simplement personne n’a fait de Retweet à propos de ces Jeux olympiques. Étant donné que 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 Publications sont tous deux des exemples d’attributs de Publication avec une longue histoire et de nombreux détails liés au produit. Ci-dessous, nous aborderons plus en détail ces éléments et d’autres catégories d’attributs importantes pour faire correspondre et comprendre les données de X.
Reconnaître les faux négatifs
has:videos, qui fait correspondre les Publications comportant des vidéos natives, cette clause ne renverra aucune Publication antérieure à 2015.
Cependant, le partage de vidéos était courant sur X bien avant 2015. Avant cela, les utilisateurs partageaient des liens vers des vidéos hébergées ailleurs, mais en 2015, X a intégré directement à la plateforme de nouvelles fonctionnalités de « partage de vidéo ». Pour trouver ces Publications plus anciennes qui vous intéressent, vous ajouteriez une clause de règle comme url:”youtube.com”.
À noter qu’avec les API Search, il existe quelques exemples de métadonnées ayant été renseignées a posteriori lors de la reconstruction de l’index. Un bon exemple est celui des cashtags, qui sont devenus très utilisés pour discuter des symboles boursiers en 2009. Après l'introduction de l'opérateur cashtag en 2015, l’index Search a été reconstruit et, au cours de ce processus, l’entité de symbole a été extraite de tous les corps de Publications, y compris dès 2006, lorsque « » était utilisé principalement comme argot : « J'espère qu'il neigebientôt$ ! ».
Identifier et filtrer les attributs de Publication importants pour votre cas d’utilisation
Profils X
Publication originale et Retweets
is:retweet permet aux utilisateurs d’inclure ou d’exclure les Retweets. Si vous extrayez des données d’avant août 2009, vous devez prévoir deux stratégies pour la prise en compte (ou non) des Retweets. Avant août 2009, il est nécessaire de vérifier le message de la Publication elle‑même, en utilisant une correspondance de phrase exacte, pour trouver les correspondances avec le motif « @RT ». Pour les périodes postérieures à août 2009, l’opérateur is:retweet est disponible.
Classifications linguistiques des Publications
lang: est disponible pour l’ensemble de l’archive des Publications. Avec Historical PowerTrack, les métadonnées de classification linguistique de X sont disponibles dans l’archive à partir du 26 mars 2013.
Géoréférencement des Publications
- Références géographiques dans le message d’une Publication
- Publications géolocalisées par l’utilisateur
- Localisation « domicile » du profil de compte définie par un utilisateur