Consulta le nostre guide di confronto:
X API: Dizionario dei dati di Enterprise
Introduzione
Enterprise
I Post sono il mattone fondamentale di tutto ciò che riguarda X. Tutte le X API che restituiscono Post forniscono i dati codificati in JavaScript Object Notation (JSON). JSON si basa su coppie chiave-valore, con attributi nominati e valori associati. Gli Oggetti Post recuperati dall’API includono l’“aggiornamento di stato” di un User di X, ma anche Retweet, risposte e Tweet con citazione sono tutti Oggetti Post. Se un Post è correlato a un altro Post, come un Retweet, una risposta o un Tweet con citazione, ciascuno verrà identificato o incorporato nell’Oggetto Post. Anche il Post più semplice nel formato dati nativo di X presenta oggetti JSON annidati per rappresentare altri attributi di un Post, come l’autore, gli users menzionati, il luogo taggato, gli hashtag, i simboli cashtag, i media o i link URL. Quando si lavora con i dati di X, questo è un concetto importante da comprendere. Il formato dei dati del Post che riceverai dalla X API dipende dal tipo di Post ricevuto, dalla X API utilizzata e dalle impostazioni di formattazione.
Gli endpoint Enterprise che restituiscono Oggetti Post sono stati aggiornati per fornire i metadata necessari a comprendere la cronologia delle modifiche del Post. Per saperne di più su questi metadata, visita la pagina “Modifica Post”.
Nel formato nativo di X, il payload JSON includerà attributi di livello principale e oggetti JSON annidati (rappresentati qui con la notazione
{}
):
Formati di dati disponibili
Nota: si consiglia vivamente di utilizzare il formato Enriched Native per le API di dati Enterprise.Le API di dati Enterprise forniscono dati in due formati. Il formato Enterprise più vicino al formato nativo Standard v1.1 è Enriched Native. Il formato di dati Enterprise legacy è Activity Streams, originariamente implementato e utilizzato da Gnip come formato normalizzato su X e presso altri provider di dati social del periodo. Sebbene questo formato sia ancora disponibile, X ha investito in nuove funzionalità e sviluppi solo sul formato Enriched Native dal 2017. Il formato Enriched Native è esattamente ciò che il nome suggerisce: include oggetti nativi di X oltre ad arricchimenti aggiuntivi disponibili per i prodotti di dati Enterprise, come i metadata di URL unwinding, profile geo, metadata dei sondaggi e metriche di engagement aggiuntive.
- Il formato Enriched Native include tutti i nuovi metadata introdotti dal 2017, come i metadata dei sondaggi, e metriche aggiuntive come reply_count e quote_count.
- Il formato Activity Streams non è stato aggiornato con nuovi metadata o arricchimenti dalla modifica del numero di caratteri del 2017.
- Expanded and enhanced URLs enrichment
- Matching rules enrichment
- Poll metadata enrichment
- Profile geo enrichment
Confronto degli oggetti per formato di dati
Native Enriched | Activity Streams |
---|---|
Link Oggetto Post | Link Oggetto Activity |
Link Oggetto utente | Link Oggetto Actor |
Link Oggetto Entities | Link Oggetto X entities |
Link Oggetto Extended entities | Link Oggetto X extended entities |
Link Oggetto Geo | Link Oggetto Location |
n/a | Link Oggetto Gnip |
Best practice di parsing
- Il JSON di X è codificato in UTF-8.
- I parser dovrebbero tollerare con facilità la variabilità nell’ordinamento dei fields. Si dovrebbe presumere che il JSON dei Post sia fornito come un hash non ordinato di data.
- I parser dovrebbero tollerare l’aggiunta di nuovi fields.
- I parser JSON devono tollerare fields mancanti, poiché non tutti i fields compaiono in tutti i contesti.
- In generale è accettabile considerare un field impostato a null, un insieme vuoto e l’assenza di un field come equivalenti.
Oggetti di data arricchiti nativi per Enterprise
Oggetto Tweet Native Enriched
Vuoi sapere come il formato dati Native Enriched corrisponde al formato X API v2? Consulta la nostra guida di confronto: Native Enriched rispetto a X API v2
Oggetto Post
id
, created_at
e text
. Gli oggetti Post presentano anche oggetti annidati che includono user
, entities
ed extended_entities
. Gli oggetti Post possono inoltre contenere altri oggetti Post annidati come retweeted_status, quoted_status ed extended_tweet. Il formato nativo arricchito include inoltre un oggetto matching_rules.
Dizionario dati di X
Attributo | Tipo | Descrizione |
---|---|---|
created_at | String | Orario UTC di creazione di questo Post. Esempio: “created_at”: “Wed Oct 10 20:19:24 +0000 2018” |
id | Int64 | Rappresentazione numerica intera dell’identificatore univoco per questo Post. Questo numero è superiore a 53 bit e alcuni linguaggi di programmazione potrebbero presentare difficoltà/difetti silenti nell’interpretarlo. È sicuro utilizzare un intero con segno a 64 bit per memorizzare questo identificatore. Utilizzare id_str per recuperare l’identificatore in modo sicuro. Consultare ID di X per maggiori informazioni. Esempio:“id”:1050118621198921728 |
id_str | String | Rappresentazione stringa dell’identificatore univoco per questo Post. Le implementazioni dovrebbero utilizzare questo campo anziché il numero intero di grandi dimensioni in id . Esempio:“id_str”:“1050118621198921728” |
text | String | Testo UTF-8 effettivo dell’aggiornamento di stato. Consultare X-text per dettagli sui caratteri attualmente considerati validi. Esempio: “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 | Strumento utilizzato per pubblicare il Post, come stringa formattata HTML. I Post dal sito web di X hanno un valore source di web .Esempio: “source”:“X Web Client” |
truncated | Boolean | Indica se il valore del parametro text è stato troncato, ad esempio a seguito di un retweet che supera il limite originale di 140 caratteri per il testo del Post. Il testo troncato termina con i puntini di sospensione, come ... Poiché X ora rifiuta i Post lunghi anziché troncarli, la grande maggioranza dei Post avrà questo valore impostato su false . Si noti che mentre i retweet nativi potrebbero avere la proprietà text di primo livello accorciata, il testo originale sarà disponibile nell’oggetto retweeted_status e il parametro truncated sarà impostato sul valore dello stato originale (nella maggior parte dei casi, false ). Esempio:“truncated”:true |
in_reply_to_status_id | Int64 | Nullable. Se il Post rappresentato è una risposta, questo campo conterrà la rappresentazione numerica intera dell’ID del Post originale. Esempio: “in_reply_to_status_id”:1051222721923756032 |
in_reply_to_status_id_str | String | Nullable. Se il Post rappresentato è una risposta, questo campo conterrà la rappresentazione stringa dell’ID del Post originale. Esempio: “in_reply_to_status_id_str”:“1051222721923756032” |
in_reply_to_user_id | Int64 | Nullable. Se il Post rappresentato è una risposta, questo campo conterrà la rappresentazione numerica intera dell’ID dell’autore del Post originale. Non sarà necessariamente sempre l’utente direttamente menzionato nel Post. Esempio: “in_reply_to_user_id”:6253282 |
in_reply_to_user_id_str | String | Nullable. Se il Post rappresentato è una risposta, questo campo conterrà la rappresentazione stringa dell’ID dell’autore del Post originale. Non sarà necessariamente sempre l’utente direttamente menzionato nel Post. Esempio: “in_reply_to_user_id_str”:“6253282” |
in_reply_to_screen_name | String | Nullable. Se il Post rappresentato è una risposta, questo campo conterrà il nome utente dell’autore del Post originale. Esempio: “in_reply_to_screen_name”:“xapi” |
user | Oggetto utente | L’utente che ha pubblicato questo Post. Consultare il dizionario dati utente per l’elenco completo degli attributi. Esempio che evidenzia attributi selezionati: { “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. Rappresenta la posizione geografica di questo Post come riportata dall’utente o dall’applicazione client. L’array di coordinate interno è formattato come geoJSON (longitudine prima, poi latitudine). Esempio: “coordinates”: <br/> “coordinates”: [ -75.14310264, 40.05701649 ], “type”:“Point” } |
place | Places | Nullable Quando presente, indica che il Post è associato (ma non necessariamente originario) a un Place Esempio: “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 | Questo campo viene visualizzato solo quando il Post è un Quote Tweet. Questo campo contiene il valore intero dell’ID del Post del Tweet citato. Esempio: “quoted_status_id”:1050119905717055488 |
quoted_status_id_str | String | Questo campo viene visualizzato solo quando il Post è un Quote Tweet. Questa è la rappresentazione stringa dell’ID del Post del Tweet citato. Esempio: “quoted_status_id_str”:“1050119905717055488” |
is_quote_status | Boolean | Indica se questo è un Quoted Tweet. Esempio: “is_quote_status”:false |
quoted_status | Post | Questo campo viene visualizzato solo quando il Post è un Quote Tweet. Questo attributo contiene l’Oggetto Post del Post originale che è stato citato. |
retweeted_status | Post | Gli utenti possono amplificare la diffusione di Post creati da altri utenti tramite Retweet. I Retweet possono essere distinti dai Post tipici per la presenza di un attributo retweeted_status . Questo attributo contiene una rappresentazione del Post originale che è stato ritwittato. Si noti che i retweet di retweet non mostrano rappresentazioni del retweet intermedio, ma solo il Post originale. (Gli utenti possono anche annullare un retweet che hanno creato eliminando il loro retweet.) |
quote_count | Integer | Nullable. Indica approssimativamente quante volte questo Post è stato citato dagli utenti di X. Esempio: “quote_count”:33 Nota: Questo oggetto è disponibile solo con i prodotti di livello Premium ed Enterprise. |
reply_count | Int | Numero di volte che questo Post ha ricevuto risposta. Esempio: “reply_count”:30 Nota: Questo oggetto è disponibile solo con i prodotti di livello Premium ed Enterprise. |
retweet_count | Int | Numero di volte che questo Post è stato ritwittato. Esempio: “retweet_count”:160 |
favorite_count | Integer | Nullable. Indica approssimativamente quante volte questo Post è stato messo tra i like dagli utenti di X. Esempio: “favorite_count”:295 |
entities | Entities | Entità che sono state estratte dal testo del Post. Vedi anche Entities in X Objects. Esempio: “entities”: <br/> “hashtags”:[], “urls”:[], “user_mentions”:[], “media”:[], “symbols”:[] “polls”:[] } |
extended_entities | Extended Entities | Quando tra una e quattro foto native o un video o una GIF animata sono presenti nel Post, contiene un array ‘media’ di metadata. Questo è disponibile anche nei Quote Tweet. Vedi anche Entities in X Objects. Esempio: “entities”: <br/> “media”:[] } |
favorited | Boolean | Nullable. Indica se questo Post è stato messo tra i like dall’utente autenticato. Esempio: “favorited”:true |
retweeted | Boolean | Indica se questo Post è stato ritwittato dall’utente autenticato. Esempio: “retweeted”:false |
possibly_sensitive | Boolean | Nullable. Questo campo indica che il contenuto potrebbe essere riconosciuto come sensibile. L’autore del Post può selezionare nelle proprie preferenze dell’account e scegliere “Contrassegna i media che pubblichi come contenenti materiale che potrebbe essere sensibile” così ogni Post creato successivamente ha questo flag impostato. Questo può anche essere giudicato e etichettato da un agente di supporto interno di X. ”possibly_sensitive”:false |
filter_level | String | Indica il valore massimo del parametro filter_level che può essere utilizzato e che comunque trasmetterà questo Post in streaming. Quindi un valore di medium sarà trasmesso in streaming su none , low e medium .Esempio: “filter_level”: “low” |
lang | String | Nullable. Quando presente, indica un identificatore di lingua BCP 47 corrispondente alla lingua rilevata automaticamente del testo del Post, o und se non è stato possibile rilevare alcuna lingua. Esempio: “lang”: “en” |
edit_history | Object | Identificatori univoci che indicano tutte le versioni di un Post. Per i Post senza modifiche, sarà presente un solo ID. Per i Post con una cronologia di modifiche, saranno presenti più ID, disposti in ordine crescente che riflette l’ordine delle modifiche, con la versione più recente nell’ultima posizione dell’array. Gli ID del Post possono essere utilizzati per recuperare e visualizzare le versioni precedenti di un Post. Esempio: edit_history”: <br/> “initial_tweet_id”: “1283764123” “edit_tweet_ids”: [“1283764123”, “1394263866”] } |
edit_controls | Object | Quando presente, indica per quanto tempo un Post è ancora modificabile e il numero di modifiche rimanenti. I Post sono modificabili solo per i primi 30 minuti dopo la creazione e possono essere modificati fino a cinque volte. Gli ID del Post possono essere utilizzati per recuperare e visualizzare le versioni precedenti di un Post. Esempio: “edit_controls”: <br/> “editable_until_ms”: 123 “edits_remaining”: 3 } |
editable | Boolean | Quando presente, indica se un Post era idoneo per la modifica al momento della pubblicazione. Questo campo non è dinamico e non cambierà da True a False quando un Post raggiunge il limite di tempo per la modifica o il numero massimo di modifiche. Le seguenti caratteristiche del Post faranno sì che questo campo sia false: _ Il Post è promosso _ Il Post ha un sondaggio _ Il Post è una risposta non-self-thread _ Il Post è un retweet (nota che i Quote Tweet sono idonei per la modifica) _ Il Post è nullcast _ Post della Community _ Post Superfollow _ Post Collaborativo |
matching_rules | Array of Rule Objects | Presente nei prodotti filtrati come X Search e PowerTrack. Fornisce l’id e il tag associati alla regola che ha trovato corrispondenza con il Post. Maggiori informazioni sulle regole di corrispondenza qui. Con PowerTrack, più di una regola può trovare corrispondenza con un Post. Esempio: “matching_rules”: ” [<br/> “tag”: “xapi emojis”, “id”: 1050118621198921728, “id_str”: “1050118621198921728” }]“ |
Attributi aggiuntivi del Post
Attribute | Type | Description |
---|---|---|
current_user_retweet | Object | Prospettico Viene restituito solo nei metodi che supportano il parametro include_my_retweet, quando impostato su true. Fornisce l’ID del Post del retweet dell’utente (se presente) relativo a questo Post. Esempio: “current_user_retweet”: <br/> “id”: 6253282, “id_str”: “6253282” } |
scopes | Object | Un insieme di coppie chiave-valore che indica la consegna contestuale prevista del Post che lo contiene. Attualmente utilizzato dai Promoted Products di X. Esempio: “scopes”:{“followers”:false} |
withheld_copyright | Boolean | Quando presente e impostato su “true”, indica che questo contenuto è stato bloccato a seguito di una segnalazione DMCA. Esempio: “withheld_copyright”: true |
withheld_in_countries | Array of String | Quando presente, indica un elenco di codici paese a due lettere in maiuscolo dai quali questo contenuto è bloccato. X supporta i seguenti valori non relativi a paesi per questo campo: “XX” - Contenuto bloccato in tutti i paesi “XY” - Contenuto bloccato a causa di una richiesta DMCA. Esempio: “withheld_in_countries”: [“GR”, “HK”, “MY”] |
withheld_scope | String | Quando presente, indica se il contenuto bloccato è lo “status” o un “user”. Esempio: “withheld_scope”: “status” |
Attributi obsoleti
Campo | type | Descrizione |
geo | Object | Obsoleto. Nullable. Usa il campo coordinates . Questo attributo obsoleto ha le coordinate nel formato [lat, long], mentre tutta la geolocalizzazione dei Post è nel formato [long, lat]. |
Oggetti Post annidati
Quote Tweets
Post estesi
Oggetto utente nativo arricchito
Dizionario dei dati utente
Attributo | Tipo | Descrizione |
---|---|---|
id | Int64 | La rappresentazione numerica dell’identificatore univoco per questo Utente. Questo numero è maggiore di 53 bit e alcuni linguaggi di programmazione potrebbero avere difficoltà/difetti silenti nell’interpretarlo. L’utilizzo di un intero con segno a 64 bit per memorizzare questo identificatore è sicuro. Utilizza id_str per recuperare l’identificatore in modo sicuro. Consulta X IDs per maggiori informazioni. Esempio:“id”: 6253282 |
id_str | String | La rappresentazione stringa dell’identificatore univoco per questo Utente. Le implementazioni dovrebbero utilizzare questo piuttosto che l’intero grande, possibilmente non gestibile in id . Esempio:“id_str”: “6253282” |
name | String | Il nome dell’utente, come definito dall’utente stesso. Non necessariamente il nome di una persona. Tipicamente limitato a 50 caratteri, ma soggetto a modifiche. Esempio: “name”: “API” |
screen_name | String | Il nome utente, handle o alias con cui questo utente si identifica. I screen_name sono univoci ma soggetti a modifiche. Utilizza id_str come identificatore utente quando possibile. Tipicamente un massimo di 15 caratteri, ma alcuni account storici potrebbero esistere con nomi più lunghi. Esempio:“screen_name”: “api” |
location | String | Nullable . La posizione definita dall’utente per il profilo di questo account. Non necessariamente una posizione, né interpretabile automaticamente. Questo campo sarà occasionalmente interpretato in modo approssimativo dal servizio di ricerca. Esempio: “location”: “San Francisco, CA” |
derived | Array di Oggetti Enrichment | Solo API Enterprise. Collezione di metadata di Enrichment derivati per l’utente. Fornisce i metadata di Enrichment Profile Geo. Consulta la documentazione di riferimento per maggiori informazioni, inclusi i dizionari dati JSON. Esempio: “derived”:“locations”: [“country”:“United States”,“country_code”:“US”,“locality”:“Denver”] |
url | String | Nullable . Un URL fornito dall’utente in associazione con il proprio profilo. Esempio: “url”: “https://developer.x.com” |
description | String | Nullable . La stringa UTF-8 definita dall’utente che descrive il proprio account. Esempio: “description”: “The Real X API.” |
protected | Boolean | Quando true, indica che questo utente ha scelto di proteggere i propri Post. Consulta Informazioni sui Post Pubblici e Protetti . Esempio: “protected”: true |
verified | Boolean | Quando true, indica che l’utente ha un account verificato. Consulta Account Verificati . Esempio: “verified”: false |
followers_count | Int | Il numero di follower che questo account ha attualmente. In certe condizioni di stress, questo campo indicherà temporaneamente “0”. Esempio: “followers_count”: 21 |
friends_count | Int | Il numero di utenti che questo account sta seguendo (ovvero i propri “following”). In certe condizioni di stress, questo campo indicherà temporaneamente “0”. Esempio: “friends_count”: 32 |
listed_count | Int | Il numero di liste pubbliche di cui questo utente è membro. Esempio: “listed_count”: 9274 |
favourites_count | Int | Il numero di Post a cui questo utente ha messo like durante la vita dell’account. Ortografia britannica utilizzata nel nome del campo per ragioni storiche. Esempio: “favourites_count”: 13 |
statuses_count | Int | Il numero di Post (inclusi i retweet) pubblicati dall’utente. Esempio: “statuses_count”: 42 |
created_at | String | La data e ora UTC in cui l’account utente è stato creato su X. Esempio: “created_at”: “Mon Nov 29 21:18:15 +0000 2010” |
profile_banner_url | String | L’URL basato su HTTPS che punta alla rappresentazione web standard del banner del profilo caricato dall’utente. Aggiungendo un elemento di percorso finale all’URL, è possibile ottenere diverse dimensioni di immagine ottimizzate per display specifici. Per le varianti di dimensione, consulta Immagini e Banner del Profilo Utente . Esempio: “profile_banner_url”: “https://si0.twimg.com/profile_banners/819797/1348102824” |
profile_image_url_https | String | Un URL basato su HTTPS che punta all’immagine del profilo dell’utente. Esempio: “profile_image_url_https”: “https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png” |
default_profile | Boolean | Quando true, indica che l’utente non ha modificato il tema o lo sfondo del proprio profilo utente. Esempio: “default_profile”: false |
default_profile_image | Boolean | Quando true, indica che l’utente non ha caricato la propria immagine del profilo e viene utilizzata un’immagine predefinita. Esempio: “default_profile_image”: false |
Attributi non più supportati (obsoleti)
Campo | Tipo | Descrizione |
---|---|---|
utc_offset | null | Il valore sarà impostato su null. Ancora disponibile tramite GET account/settings |
time_zone | null | Il valore sarà impostato su null. Ancora disponibile tramite GET account/settings come tzinfo_name |
lang | null | Il valore sarà impostato su null. Ancora disponibile tramite GET account/settings come language |
geo_enabled | null | Il valore sarà impostato su null. Ancora disponibile tramite GET account/settings. Questo campo deve essere true affinché l’utente corrente possa allegare dati geografici quando utilizza POST statuses/update |
following | null | Il valore sarà impostato su null. Ancora disponibile tramite GET friendships/lookup |
follow_request_sent | null | Il valore sarà impostato su null. Ancora disponibile tramite GET friendships/lookup |
has_extended_profile | null | Obsoleto. Il valore sarà impostato su null. |
notifications | null | Obsoleto. Il valore sarà impostato su null. |
profile_location | null | Obsoleto. Il valore sarà impostato su null. |
contributors_enabled | null | Obsoleto. Il valore sarà impostato su null. |
profile_image_url | null | Obsoleto. Il valore sarà impostato su null. NOTA: le immagini del profilo sono disponibili solo utilizzando il campo profile_image_url_https. |
profile_background_color | null | Obsoleto. Il valore sarà impostato su null. |
profile_background_image_url | null | Obsoleto. Il valore sarà impostato su null. |
profile_background_image_url_https | null | Obsoleto. Il valore sarà impostato su null. |
profile_background_tile | null | Obsoleto. Il valore sarà impostato su null. |
profile_link_color | null | Obsoleto. Il valore sarà impostato su null. |
profile_sidebar_border_color | null | Obsoleto. Il valore sarà impostato su null. |
profile_sidebar_fill_color | null | Obsoleto. Il valore sarà impostato su null. |
profile_text_color | null | Obsoleto. Il valore sarà impostato su null. |
profile_use_background_image | null | Obsoleto. Il valore sarà impostato su null. |
is_translator | null | Obsoleto. Il valore sarà impostato su null. |
is_translation_enabled | null | Obsoleto. Il valore sarà impostato su null. |
translator_type | null | Obsoleto. Il valore sarà impostato su null. |
Esempio di oggetto utente:
Oggetti geo nativi arricchiti
place
è sempre presente quando un Post è geo‑taggato con un luogo. I Place sono posizioni specifiche e denominate, con le relative coordinate geografiche. Quando gli utenti decidono di assegnare una posizione al proprio Post, viene presentato loro un elenco di X Place candidati. Quando si utilizza l’API per pubblicare, è possibile allegare un X Place specificando un place_id al momento della pubblicazione. I Post associati ai Place non provengono necessariamente da quella posizione, ma potrebbero anche essere relativi a quella posizione.
Gli oggetti geo e coordinates
sono presenti (non null) solo quando al Post viene assegnata una posizione esatta. Se viene fornita una posizione esatta, l’oggetto coordinates
restituirà un array [long, lat] con le coordinate geografiche e verrà assegnato un X Place corrispondente a tale posizione.
Dizionario dei dati Place
Field | Type | Description |
---|---|---|
id | String | ID che rappresenta questo luogo. Nota: è rappresentato come stringa, non come numero intero. Esempio: “id”:“01a9a39529b27f36” |
url | String | URL della posizione delle ulteriori metadata per questo luogo. Esempio: “url”:“https://api.x.com/1.1/geo/id/01a9a39529b27f36.json” |
place_type | String | Il tipo di località rappresentato da questo luogo. Esempio: “place_type”:“city” |
name | String | Rappresentazione breve e leggibile del nome del luogo. Esempio: “name”:“Manhattan” |
full_name | String | Rappresentazione completa e leggibile del nome del luogo. Esempio: “full_name”:“Manhattan, NY” |
country_code | String | Codice paese abbreviato del paese che contiene questo luogo. Esempio: “country_code”:“US” |
country | String | Nome del paese che contiene questo luogo. Esempio: “country”:“United States” |
bounding_box | Object | Un riquadro di delimitazione di coordinate che racchiude questo luogo. Esempio: “bounding_box”: “coordinates”: [ [ [ -74.026675, 40.683935 ], [ -74.026675, 40.877483 ], [ -73.910408, 40.877483 ], [ -73.910408, 40.3935 ] ] ], “type”: “Polygon” |
attributes | Object | Quando si utilizzano le API PowerTrack, 30-Day e Full-Archive Search, e i Volume Streams, questo hash è nullo. Esempio: “attributes”: |
Campo | Tipo | Descrizione |
coordinates | Array di Array di Array di Float | Una serie di punti di longitudine e latitudine che definiscono un riquadro che conterrà l’entità Place a cui è associato questo riquadro di delimitazione. Ogni punto è un array nel formato [longitudine, latitudine]. I punti sono raggruppati in un array per ciascun riquadro di delimitazione. Gli array del riquadro di delimitazione sono racchiusi in un ulteriore array per essere compatibili con la notazione dei poligoni. Esempio: “coordinates”: [ [ [ -74.026675, 40.683935 ], [ -74.026675, 40.877483 ], [ -73.910408, 40.877483 ], [ -73.910408, 40.3935 ] ] ] |
type | String | Il tipo di data codificato nella proprietà coordinates. Per i riquadri di delimitazione sarà “Polygon” e “Point” per i Post con coordinate esatte. Esempio: “type”:“Polygon” |
Dizionario dei dati dell’oggetto Geo
Field | Type | Description |
coordinates | Collection of Float | Longitudine e latitudine della posizione del Post, come raccolta nel formato [latitudine, longitudine]. Esempio: ** “geo”: “type”:** “Point”, ** “coordinates”: [ 54.27784, -0.41068 ] ** |
type | String | Il tipo di dato codificato nella proprietà coordinates. Per i campi di coordinate del Post sarà “Point”. Esempio: “type”: “Point” |
Field | Type | Description |
coordinates | Collection of Float | Longitudine e latitudine della posizione del Post, come raccolta nel formato [longitudine, latitudine]. Esempio: ** “coordinates”: “type”:** “Point”, ** “coordinates”: [ -0.41068, 54.27784 ] ** |
type | String | Il tipo di dato codificato nella proprietà coordinates. Per i campi di coordinate del Post sarà “Point”. Esempio: “type”: “Point” |
Località derivate
Campo | Tipo | Descrizione |
derived | oggetto locations | Località derivata dall’enrichment geografico del profilo “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” ** ] ** |
Esempi:
Entità di X
Vai a questa pagina Introduzione Oggetto entities - Oggetto hashtag - Oggetto media - Oggetto dimensioni dei media - Oggetto URL - Oggetto menzione utente - Oggetto simbolo - Oggetto sondaggio Dettagli su Retweet e Quote Tweet Entità negli oggetti utente Entità nei Messaggi Diretti Passaggi successiviIntroduzione
entities
contiene array di elementi comuni presenti nei Post: hashtag, menzioni di utenti, link, ticker azionari (simboli), sondaggi di X e media allegati. Questi array sono comodi per gli sviluppatori durante l’ingestione dei Post, poiché X ha sostanzialmente pre-elaborato, o pre-parsato, il corpo del testo. Invece di dover cercare e individuare esplicitamente queste entità nel corpo del Post, il parser può andare direttamente a questa sezione JSON e trovarle lì.
Oltre a offrire praticità di parsing, la sezione entities
fornisce anche utili metadata di “valore aggiunto”. Ad esempio, se stai utilizzando l’arricchimento Enhanced URLs, i metadata degli URL includono URL completamente espansi, oltre ai titoli e alle descrizioni dei siti web associati. Un altro esempio: quando sono presenti menzioni di utenti, i metadata delle entità includono l’id numerico dell’utente, utile quando si effettuano richieste a molte X API.
Ogni payload JSON di un Post include una sezione entities
, con il set minimo di attributi hashtags
, urls
, user_mentions
e symbols
, anche se nessuna di queste entità fa parte del messaggio del Post. Ad esempio, se esamini il JSON di un Post con il testo “Hello World!” e senza media allegati, il JSON del Post includerà il seguente contenuto con array di entità contenenti zero elementi:
- le entità media e poll compaiono solo quando quel tipo di contenuto fa parte del Post.
- se lavori con media nativi (foto, video o GIF), l’oggetto Extended Entities è l’approccio consigliato.
Oggetto Entities
entities
ed extended_entities
sono entrambe composte da array di oggetti entità. Di seguito trovi le descrizioni di ciascuno di questi oggetti entità, inclusi i dizionari dei dati che illustrano i nomi degli attributi dell’oggetto, i tipi e una breve descrizione. Indicheremo anche quali operatori PowerTrack corrispondono a questi attributi e includeremo alcuni payload JSON di esempio.
Una raccolta di entità comuni presenti nei Post, tra cui hashtag, link e menzioni di utenti. L’oggetto entities
include un attributo media
, ma la sua implementazione nella sezione entities
è completamente accurata solo per i Post con una singola foto. Per tutti i Post con più di una foto, un video o una GIF animata, rimandiamo alla sezione extended_entities
.
Dizionario dei dati delle entità
entities
, verranno forniti i dizionari dei dati per questi sotto-oggetti e gli operatori che li corrispondono.
Campo | Tipo | Descrizione |
---|---|---|
hashtags | Array di Oggetti Hashtag | Rappresenta gli hashtag estratti dal testo del Post. Esempio: “hashtags”: [ “indices”: [ 32, 38 ], “text”: “nodejs” ] |
media | Array di Oggetti Media | Rappresenta gli elementi multimediali caricati con il Post. Esempio: “media”: [ “display_url”: “pic.x.com/5J1WJSRCy9”, “expanded_url”: “https://x.com/nolan_test/status/930077847535812610/photo/1”, “id”: 9.300778475358126e17, “id_str”: “930077847535812610”, “indices”: [ 13, 36 ], “media_url”: “http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg” “sizes”: “thumb”: “h”: 150, “resize”: “crop”, “w”: 150 , “large”: “h”: 1366, “resize”: “fit”, “w”: 2048 , “medium”: “h”: 800, “resize”: “fit”, “w”: 1200 , “small”: “h”: 454, “resize”: “fit”, “w”: 680 , “type”: “photo”, “url”: “https://t.co/5J1WJSRCy9”, ] |
urls | Array di Oggetti URL | Rappresenta gli URL inclusi nel testo di un Post. Esempio (senza arricchimento Enhanced URLs abilitato): “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” ] Esempio (con arricchimento Enhanced URLs abilitato): “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 Finché ci saranno troll che fanno trolling, Rick non smetterà mai di fare rolling.” , “indices”: [ 62, 85 ] ] |
user_mentions | Array di Oggetti User Mention | Rappresenta altri utenti X menzionati nel testo del Post. Esempio: “user_mentions”: [ “name”: “X API”, “indices”: [ 4, 15 ], “screen_name”: “xapi”, “id”: 6253282, “id_str”: “6253282” ] |
symbols | Array di Oggetti Symbol | Rappresenta i simboli, ovvero i $cashtag, inclusi nel testo del Post. Esempio: “symbols”: [ “indices”: [ 12, 17 ], “text”: “twtr” ] |
polls | Array di Oggetti Poll | Rappresenta i sondaggi X inclusi nel Post. Esempio: “polls”: [ “options”: [ “position”: 1, “text”: “Leggo la documentazione una volta.” , “position”: 2, “text”: “Leggo la documentazione due volte.” }, “position”: 3, “text”: “Leggo la documentazione più e più volte.” } ], “end_datetime”: “Thu May 25 22:20:27 +0000 2017”, “duration_minutes”: 60 ] |
Oggetto Hashtag
La sezioneentities
conterrà un array hashtags
con un oggetto per ogni hashtag incluso nel corpo del Post e includerà un array vuoto se non sono presenti hashtag.
L’operatore PowerTrack #
viene utilizzato per eseguire il match sull’attributo text
. L’operatore has:hashtags
farà match se è presente almeno un elemento nell’array.
Campo | Type | Descrizione |
indices | Array of Int | Un array di interi che indica gli offset all’interno del testo del Post in cui l’hashtag inizia e termina. Il primo intero rappresenta la posizione del carattere # nella stringa di testo del Post. Il secondo intero rappresenta la posizione del primo carattere dopo l’hashtag. Pertanto, la differenza tra i due numeri corrisponde alla lunghezza del nome dell’hashtag più uno (per il carattere ‘#’). Esempio: “indices”:[32,38] |
text | String | Nome dell’hashtag, senza il carattere iniziale ‘#’. Esempio: “text”:“nodejs” |
Oggetto multimediale
La sezioneentities
conterrà un array media
con un singolo oggetto multimediale se al Post è stato “allegato” un oggetto multimediale. Se non è stato allegato alcun media nativo, nella sezione entities
non sarà presente alcun array media
. Per i seguenti motivi, per elaborare i media nativi del Post è consigliabile utilizzare la sezione extended_entities
:
- Il
type
del media indicherà sempre “photo”, anche quando al Post sono allegati un video o una GIF. - Anche se è possibile allegare fino a quattro foto, nella sezione
entities
sarà elencata solo la prima.
has:media
ha corrispondenza se questo array è valorizzato.
Campo | Tipo | Descrizione |
display_url | String | URL del media da visualizzare ai client. Esempio: “display_url”:“pic.x.com/rJC5Pxsu” |
expanded_url | String | Una versione espansa di display_url. Rimanda alla pagina di visualizzazione del media. Esempio: “expanded_url”: “http://x.com/yunorno/status/114080493036773378/photo/1” |
id | Int64 | ID del media espresso come intero a 64 bit. Esempio: “id”:114080493040967680 |
id_str | String | ID del media espresso come stringa. Esempio: “id_str”:“114080493040967680” |
indices | Array of Int | Un array di interi che indica gli offset all’interno del testo del Post dove l’URL inizia e finisce. Il primo intero rappresenta la posizione del primo carattere dell’URL nel testo del Post. Il secondo intero rappresenta la posizione del primo carattere non-URL che si trova dopo l’URL (o la fine della stringa se l’URL è l’ultima parte del testo del Post). Esempio: “indices”:[15,35] |
media_url | String | Un URL http:// che punta direttamente al file media caricato. Esempio: “media_url”:“http://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg” Per i media nei Messaggi Diretti, media_url è lo stesso URL https di media_url_https e deve essere accessibile firmando una richiesta con l’access token dell’utente utilizzando OAuth 1.0A.Non è possibile accedere alle immagini tramite una sessione x.com autenticata. Visitare questa pagina per informazioni su come gestire questa modifica recente. Non è possibile incorporare direttamente queste immagini in una pagina web. Vedere Formattazione URL Media Foto per informazioni su come formattare l’URL di una foto, come media_url_https , in base alle sizes disponibili. |
media_url_https | String | Un URL https:// che punta direttamente al file media caricato, per l’incorporamento su pagine https. Esempio: “media_url_https”:“https://p.twimg.com/AZVLmp-CIAAbkyy.jpg” Per i media nei Messaggi Diretti, media_url_https deve essere accessibile firmando una richiesta con l’access token dell’utente utilizzando OAuth 1.0A.Non è possibile accedere alle immagini tramite una sessione x.com autenticata. Visitare questa pagina per informazioni su come gestire questa modifica recente. Non è possibile incorporare direttamente queste immagini in una pagina web. Vedere Formattazione URL Media Foto per informazioni su come formattare l’URL di una foto, come media_url_https , in base alle sizes disponibili. |
sizes | Size Object | Un oggetto che mostra le dimensioni disponibili per il file media. Esempio: “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 } } } Vedere Formattazione URL Media Foto per informazioni su come formattare l’URL di una foto, come media_url_https , in base alle sizes disponibili. |
source_status_id | Int64 | Nullable. Per i Post contenenti media che era originariamente associato a un Post diverso, questo ID punta al Post originale. Esempio: “source_status_id”: 205282515685081088 |
source_status_id_str | Int64 | Nullable. Per i Post contenenti media che era originariamente associato a un post diverso, questo ID basato su stringa punta al Post originale. Esempio: “source_status_id_str”: “205282515685081088” |
type | String | Tipo di media caricato. I tipi possibili includono photo, video e animated_gif. Esempio: “type”:“photo” |
url | String | URL incapsulato per il collegamento media. Questo corrisponde all’URL incorporato direttamente nel testo grezzo del Post e ai valori per il parametro indices . Esempio:“url”:“http://t.co/rJC5Pxsu” |
Oggetti delle dimensioni dei media
Oggetto Sizes
Campo | Type | Descrizione |
thumb | Size Object | Informazioni per una versione in miniatura del contenuto multimediale. Esempio: “thumb”:“h”:150, “resize”:“crop”, “w”:150} Le foto in formato miniatura saranno limitate a riempire un riquadro 150x150 e verranno ritagliate. |
large | Size Object | Informazioni per una versione di grandi dimensioni del contenuto multimediale. Esempio: “large”:“h”:454, “resize”:“fit”, “w”:680} Le foto di piccole dimensioni saranno limitate ad adattarsi entro un riquadro 680x680. |
medium | Size Object | Informazioni per una versione di medie dimensioni del contenuto multimediale. Esempio: “medium”:“h”:800, “resize”:“fit”, “w”:1200} Le foto di medie dimensioni saranno limitate ad adattarsi entro un riquadro 1200x1200. |
small | Size Object | Informazioni per una versione di piccole dimensioni del contenuto multimediale. Esempio: “small”:“h”:1366, “resize”:“fit”, “w”:2048} Le foto di grandi dimensioni saranno limitate ad adattarsi entro un riquadro 2048x2048. |
Oggetto Size
Campo | Tipo | Descrizione |
w | Int | Larghezza in pixel di questa dimensione. Esempio: “w”:150 |
h | Int | Altezza in pixel di questa dimensione. Esempio: “h”:150 |
resize | String | Metodo di ridimensionamento utilizzato per ottenere questa dimensione. Un valore fit indica che il contenuto multimediale è stato ridimensionato per adattarsi a una dimensione, mantenendo il rapporto d’aspetto originale. Un valore crop indica che il contenuto multimediale è stato ritagliato per adattarsi a una risoluzione specifica. Esempio: “resize”:“crop” |
Formattazione degli URL dei media fotografici
media_url
o media_url_https
possono essere utilizzati da soli, caricando per impostazione predefinita la variante medium. Tuttavia, quando possibile, è preferibile fornire un URL dei media fotografici completamente formattato.
Un URL dei media fotografici è composto da tre parti:
Base URL | Il base URL è l’URL del media senza l’estensione del file. Ad esempio: “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, Il base URL è quindi: https://pbs.twimg.com/media/DOhM30VVwAEpIHq |
Format | Il formato è il tipo di file in cui è salvata la foto. I formati possibili sono jpg o png, forniti come estensione dell’URL del media. Ad esempio: “media_url_https”: “https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg”, Il formato è quindi: jpg |
Name | Il name è il nome del campo della dimensione da caricare. Ad esempio: “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 } } } Il name quando si carica la foto in dimensione large sarà: large |
Formato legacy | Il formato legacy è obsoleto. Tutti i caricamenti di foto devono passare al formato moderno. <base_url>.<format>:<name> Ad esempio: https://pbs.twimg.com/media/DOhM30VVwAEpIHq.jpg:large |
Formato moderno | Il formato moderno per il caricamento delle foto è stato introdotto su X nel 2015 ed è diventato quello di fatto dal 2017. Tutti i caricamenti di foto devono passare a questo formato. <base_url>?format=<format>&name=<name> Ad esempio: https://pbs.twimg.com/media/DOhM30VVwAEpIHq?format=jpg&name=large Nota: gli elementi nella query string dell’URL dei contenuti foto sono in ordine alfabetico. Se il caricamento dei contenuti dovesse aggiungere ulteriori elementi di query, sarà necessario mantenerne l’ordinamento alfabetico. Ad esempio, se ci fosse un nuovo elemento di query ipotetico chiamato preferred_format, andrebbe dopo format e name nella query string. |
Oggetto URL
La sezioneentities
conterrà un array urls
con un oggetto per ogni link presente nel corpo del Post e includerà un array vuoto se non sono presenti link.
L’operatore has:links
ha corrispondenza se è presente almeno un elemento nell’array. L’operatore url:
viene utilizzato per effettuare la corrispondenza sull’attributo expanded_url
. Se utilizzi l’Expanded URL enrichment, l’operatore url:
viene utilizzato per effettuare la corrispondenza sull’attributo unwound.url
(URL completamente “unwound”). Se utilizzi l’Enhanced URL enrichment, gli operatori url_title:
e url_description:
vengono utilizzati per effettuare la corrispondenza sugli attributi unwound.title
e unwound.description
.
Field | Type | Description |
display_url | String | URL incollato/digitato nel Post. Esempio: “display_url”:“bit.ly/2so49n2” |
expanded_url | String | Versione espansa di display_url . Esempio:“expanded_url”:“http://bit.ly/2so49n2” |
indices | Array of Int | Un array di interi che rappresentano gli offset all’interno del testo del Post in cui l’URL inizia e termina. Il primo intero rappresenta la posizione del primo carattere dell’URL nel testo del Post. Il secondo intero rappresenta la posizione del primo carattere non URL dopo la fine dell’URL. Esempio: “indices”:[30,53] |
url | String | URL “wrapped”, corrispondente al valore incorporato direttamente nel testo grezzo del Post e ai valori del parametro indices. Esempio: “url”:“https://t.co/yzocNFvJuL” |
unwound
:
Field | Type | Description |
url | String | La versione completamente “unwound” del link incluso nel Post. Esempio: “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 | Stato HTTP finale del processo di “unwinding”, con 200 che indica il successo. Esempio: 200 |
title | String | Titolo HTML del link. Esempio: “title”:“Using X as a ‘go-to’ communication channel during severe weather” |
description | String | Descrizione HTML del link. Esempio: “description”:“Using X as a ‘go-to’ communication channel during severe weather” |
Oggetto menzione utente
La sezioneentities
conterrà un array user_mentions
con un oggetto per ogni menzione utente inclusa nel corpo del Post e includerà un array vuoto se non è presente alcuna menzione utente.
L’operatore PowerTrack @
viene utilizzato per eseguire il matching sull’attributo screen_name
. L’operatore has:mentions
effettua il matching se è presente almeno un elemento nell’array.
Campo | Type | Descrizione |
id | Int64 | ID dell’utente menzionato, come intero. Esempio: “id”:6253282 |
id_str | String | ID dell’utente menzionato, come stringa. Esempio: “id_str”:“6253282” |
indices | Array of Int | Un array di interi che rappresentano gli offset all’interno del testo del Post in cui inizia e termina il riferimento all’utente. Il primo intero rappresenta la posizione del carattere ‘@’ della menzione utente. Il secondo intero rappresenta la posizione del primo carattere successivo alla menzione che non fa parte dello screen name. Esempio: “indices”:[4,15] |
name | String | Nome visualizzato dell’utente di riferimento. Esempio: “name”:“API” |
screen_name | String | Screen name dell’utente di riferimento. Esempio: “screen_name”:“api” |
Oggetto Symbol
La sezioneentities
conterrà un array symbols
che include un oggetto per ogni $cashtag presente nel corpo del Post e includerà un array vuoto se non è presente alcun simbolo.
L’operatore PowerTrack $
viene utilizzato per effettuare il match sull’attributo text
. L’operatore has:symbols
effettua il match se è presente almeno un elemento nell’array.
Campo | Type | Descrizione |
indices | Array of Int | Un array di interi che indica gli offset all’interno del testo del Post in cui il simbolo/cashtag inizia e finisce. Il primo intero rappresenta la posizione del carattere ’). Esempio: “indices”:[12,17] |
text | String | Nome del cashtag, senza il carattere iniziale ‘$’. Esempio: “text”:“twtr” |
Oggetto Poll
entities
conterrà un array polls
con un singolo oggetto poll
se il Post include un sondaggio. Se non è incluso alcun sondaggio, non sarà presente alcun array polls
nella sezione entities
.
Nota che questi metadati del sondaggio sono disponibili solo con le seguenti API Enterprise:
- stream di volume (Decahose )
- Real-time PowerTrack
- X Search API (Full-Archive Search e 30-Day Search)
Campo | Tipo | Descrizione |
options | Array di oggetti Option | Un array di opzioni, ciascuna con una posizione nel sondaggio e il testo relativo a quella posizione. Esempio: “options”: [ “position”: 1, “text”: “I read documentation once.” } ] } |
end_datetime | String | Timestamp (UTC) della fine del sondaggio. Esempio: “end_datetime”: “Thu May 25 22:20:27 +0000 2017” |
duration_minutes | String | Durata del sondaggio in minuti. Esempio: “duration_minutes”: 60 |
Dettagli su Retweet e Quote Tweet
Retweet













Quote Tweets
Entità per l’oggetto utente
Le entità per gli oggetti utente descrivono gli URL che compaiono nei campi profile URL e description definiti dall’utente. Non descrivono hashtag o user_mentions. A differenza delle entità dei Post, le entità utente possono applicarsi a più campi all’interno dell’oggetto padre: per disambiguare, troverai nodi padre chiamati url e description che indicano quale campo contiene l’URL entizzato. In questo esempio, il campo url dell’utente contiene un link t.co che è completamente espanso all’interno del nodo entities/url/urls[0] della risposta. L’utente non ha un URL “wrappato” nella propria description.Esempio di JSON
Entità estese su X
Vai a questa pagina Introduzione Oggetto Extended Entities Esempi di Tweet e payload JSON - Tweet con quattro foto native - Tweet con video nativo - Tweet con GIF animata Passaggi successiviIntroduzione
extended_entities
. L’oggetto extended_entities
contiene un unico array media
di oggetti media
(consultare la sezione entities
per il relativo data dictionary). Nessun altro tipo di entità, come hashtag e link, è incluso nella sezione extended_entities
. L’oggetto media
nella sezione extended_entities
è identico nella struttura a quello incluso nella sezione entities
.
I Post possono avere un solo tipo di contenuto multimediale allegato. Per le foto è possibile allegarne fino a quattro. Per i video e le GIF, è possibile allegarne uno. Poiché i metadata type
dei media nella sezione extended_entities
indicano correttamente il tipo di contenuto (“photo”, “video” o “animated_gif”) e supportano fino a 4 foto, questa è la fonte di metadata preferita per i contenuti multimediali nativi.
Esempi di Post e payload JSON
Ecco la sezione
entities
per questo Post:
extended_entities
per questo Post:
Post con video nativo
video_info
viene sostituito con un oggetto additional_media_info
.
L’oggetto additional_media_info
contiene ulteriori informazioni multimediali fornite dal publisher, come title
, description
ed embeddable flag
. I contenuti video sono disponibili solo per i client ufficiali di X quando embeddable=false
. In questo caso, tutti gli URL video forniti nel payload saranno basati su X, così l’utente potrà aprire il video in una proprietà di X cliccando sul link.
Ecco un esempio di come si presenta l’oggetto extended entities in questa situazione:
entities
in cui type
è impostato erroneamente su ‘photo’. Anche in questo caso, la sezione extended_entities
è preferibile per tutti i tipi di contenuti multimediali nativi, inclusi ‘video’ e ‘animated_gif’.
Post con una GIF animata
Di seguito sono riportati i metadati delle entità estese per questo Post con una GIF animata:
Esempi di payload nativi con arricchimento
Post
Rispondi al Post
Post esteso
Post con extended_entities
Retweet
Retweet con commento
Retweet di Quote Tweet
Oggetti dati degli stream di attività Enterprise
Vuoi saperne di più su come il formato dati Activity Streams si mappa al formato X API v2?
Nota: è fortemente consigliato utilizzare il formato Enriched Native per le API di dati Enterprise.
- Il formato Enriched Native include tutti i nuovi metadata dal 2017, come i metadata dei sondaggi, e metriche aggiuntive come reply_count e quote_count.
- Il formato Activity Streams non è stato aggiornato con nuovi metadata o arricchimenti dall’aggiornamento dei caratteri del 2017.
Oggetto Activity
Dizionario dei dati
Attributo | Tipo | Descrizione |
id | string | Un IRI univoco per il post. Più nel dettaglio, “tag” è lo schema, “search.x.com” rappresenta il dominio per lo schema, e 2005 è l’anno in cui lo schema è stato derivato. Quando si memorizzano i Post, questo dovrebbe essere utilizzato come identificatore univoco o chiave primaria. “id”: “tag:search.x.com,2005:1050118621198921728” |
objectType | string | Tipo di oggetto, sempre impostato su “activity” “objectType”: “activity” |
object | object | Un oggetto che rappresenta il post che viene pubblicato o condiviso. Per i Retweet, questo conterrà un’intera “activity”, con i campi pertinenti descritti in questo schema. Per i post originali, questo conterrà un oggetto “note”, con i campi descritti qui. “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 oggetto che rappresenta il corpo del testo completo se il testo del post supera i 140 caratteri. “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 | Se il testo del post supera i 140 caratteri. “display_text_range”: [ 0, 142 ] |
verb | string | Il tipo di azione eseguita dall’utente. Post, “post” Retweet, “share” Post eliminati, “delete” Il verbo è il modo corretto per distinguere tra un Tweet e un vero Retweet. Tuttavia, questo si applica solo ai veri retweet, e non ai Tweet modificati o citati, che non utilizzano la funzionalità Retweet di X. Per una descrizione dei verbi AS clicca qui. Per le eliminazioni, nota che solo un numero limitato di campi sarà incluso, come mostrato nel payload di esempio qui sotto. “verb”: “post” |
postedTime | date (ISO 8601) | L’ora in cui è avvenuta l’azione, ad esempio l’ora in cui il post è stato pubblicato. “postedTime”: “2018-10-10T20:19:24.000Z” |
generator | object | Un oggetto che rappresenta l’utilità utilizzata per pubblicare il post. Questo conterrà il nome (“displayName”) e un collegamento (“link”) per l’applicazione sorgente che genera il Post. “generator”: “displayName”: “X Web Client”, “link”: “http://x.com” |
provider | object | Un oggetto JSON che rappresenta il fornitore dell’attività. Questo conterrà un objectType (“service”), il nome del fornitore (“displayName”), e un collegamento al sito web del fornitore (“link”). “provider”: “objectType”: “service”, “displayName”: “X”, “link”: “http://www.x.com” |
link | string | Un permalink per il post. “link”: “http://x.com/API/statuses/1050118621198921728” |
body | string | Il testo del post. Nei Retweet, nota che X modifica il valore del body a livello radice aggiungendo “RT @username” all’inizio, e troncando il testo originale e aggiungendo puntini di sospensione alla fine. Pertanto, per i Retweet, la tua app dovrebbe guardare object.body per assicurarsi di estrarre il testo non modificato del Post originale (che viene ritwittato). “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 | Descrive l’intervallo di caratteri all’interno del testo del body che indica il Post visualizzato. I post con @mention iniziali inizieranno da un valore superiore a 0 e i post con media allegati o che superano i 140 caratteri indicheranno il display_text_range nel long_object. “display_text_range”: [ 14, 42 ] oppure “long_object”: “display_text_range”: [ 0, 277 ]… |
actor | object | Un oggetto che rappresenta l’utente X che ha pubblicato. L’oggetto Actor si riferisce a un utente X, e contiene tutti i metadata rilevanti per quell’utente. Vedi dettagli dell’oggetto actor |
inReplyTo | object | Un oggetto JSON che si riferisce al Post a cui si sta rispondendo, se applicabile. Contiene un collegamento al Post. “inReplyTo”: “link”: “http://x.com/GOP/statuses/349573991561838593” |
location | object | Un oggetto JSON che rappresenta il “Place” di X dove il post è stato creato. Questo è un oggetto passato dalla piattaforma X. Vedi oggetto location |
twitter_entities | object | L’oggetto entities dal formato dati di X che contiene elenchi di URL, menzioni e hashtag. Fare riferimento alla documentazione di X sulle Entities qui. Si noti che nei Retweet, X potrebbe troncare i valori delle entities che estrae a livello radice. Pertanto, per i Retweet, l’applicazione dovrebbe controllare object.twitter_entities per assicurarsi di utilizzare valori non troncati. Vedere i dettagli dell’oggetto twitter_entities |
twitter_extended_entities | object | Un oggetto dal formato dati nativo di X contenente “media”. Sarà presente per qualsiasi post in cui l’oggetto twitter_entities contiene dati nel campo “media” e includerà più foto quando presenti nel post. Si noti che questa è la posizione corretta per recuperare informazioni sui media per post con più foto. Più foto sono rappresentate da oggetti JSON separati da virgole all’interno dell’array “media”. Vedere dettagli dell’oggetto twitter_extended_entities |
gnip | object | Un oggetto aggiunto al payload dell’attività per indicare le regole corrispondenti e aggiungere dati arricchiti basati sugli arricchimenti attivi sullo stream o prodotto. Vedere dettagli dell’oggetto gnip |
edit_history | Object | Identificatori univoci che indicano tutte le versioni di un Post. Per Post senza modifiche, sarà presente un ID. Per Post con una cronologia di modifiche, saranno presenti più ID, disposti in ordine crescente che riflette l’ordine delle modifiche, con la versione più recente nell’ultima posizione dell’array. Gli ID del Post possono essere utilizzati per idratare e visualizzare versioni precedenti di un Post. Esempio: edit_history”: “initial_tweet_id”: “1283764123” “edit_tweet_ids”: [“1283764123”, “1394263866”] |
edit_controls | Object | Quando presente, indica per quanto tempo un Post è ancora modificabile e il numero di modifiche rimanenti. I Post sono modificabili solo per i primi 30 minuti dopo la creazione e possono essere modificati fino a cinque volte. Gli ID del Post possono essere utilizzati per idratare e visualizzare versioni precedenti di un Post. Esempio: “edit_controls”: “editable_until_ms”: 123 “edits_remaining”: 3 |
editable | Boolean | Quando presente, indica se un Post era idoneo per la modifica al momento della pubblicazione. Questo campo non è dinamico e non cambierà da True a False quando un Post raggiunge il limite di tempo per la modifica o il numero massimo di modifiche. Le seguenti caratteristiche del Post faranno sì che questo campo sia false: _ Il Post è promosso _ Il Post ha un sondaggio _ Il Post è una risposta non-self-thread _ Il Post è un retweet (si noti che i Quote Tweet sono idonei per la modifica) _ Il Post è nullcast _ Post della Community _ Post Superfollow _ Post Collaborativo |
Attributi aggiuntivi del Post
Attributo | Type | Descrizione |
---|---|---|
twitter_lang | string | |
favoritesCount | int | Nullable. Indica approssimativamente quante volte questo Post è stato messo like dagli utenti di X. “favoritesCount”:298 |
retweetCount | int | Numero di volte in cui questo Post è stato Retweetato. Esempio: “retweetCount”:153 |
Attributi deprecati
Campo | type | Descrizione |
geo | object | Posizione puntuale in cui è stato creato il Post. |
twitter_filter_level | string | Campo deprecato mantenuto per evitare modifiche che introducano breaking change |
Oggetti di attività Post annidati
{ "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 di un Tweet con citazione:
Oggetto lungo
Oggetto Actor
Dizionario dei dati
Attributo | Type | Descrizione |
---|---|---|
objectType | string | ”objectType”: “person” |
id | string | La rappresentazione in formato stringa dell’identificatore univoco di questo autore. Esempio: “id:x.com:2244994945” |
link | ”http://www.x.com/XDeveloeprs | |
displayName | String | Il nome dell’utente, come definito dall’utente stesso. Non necessariamente un nome proprio. In genere limitato a 50 caratteri, ma soggetto a modifiche. Esempio: “displayName”: “XDevelopers” |
preferredUsername | string | Il nome visualizzato, handle o alias con cui questo utente si identifica. Unico ma soggetto a modifiche. Utilizzare id come identificatore utente quando possibile. In genere lungo al massimo 15 caratteri, ma potrebbero esistere alcuni account storici con nomi più lunghi. Esempio:“preferredUsername”: “XDevelopers” |
location | object | ** “location”: “objectType”:** “place”, “displayName”: “127.0.0.1” ** }** |
links | array | Nullable. Un URL fornito dall’utente associato al proprio profilo. Esempio: ** “links”: [ { “href”:** “https://developer.x.com/en/community”, “rel”: “me” ** } ]** |
summary | string | Nullable. Stringa UTF-8 definita dall’utente che descrive il proprio account. Esempio: “summary”: “The voice of the #XDevelopers team…“ |
protected | Boolean | Quando true, indica che questo utente ha scelto di proteggere i propri Post. Vedere About Public and Protected Posts. Esempio: “protected”: true |
verified | Boolean | Quando true, indica che l’utente ha un account verificato. Vedere Verified Accounts. Esempio: “verified”: false |
followersCount | Int | Il numero di follower che questo account ha attualmente. In determinate condizioni di carico, questo campo indicherà temporaneamente “0”. Esempio: “followers_count”: 21 |
friendsCount | Int | Il numero di utenti seguiti da questo account (ovvero i suoi “following”). In determinate condizioni di carico, questo campo indicherà temporaneamente “0”. Esempio: “friends_count”: 32 |
listedCount | Int | Il numero di List pubbliche di cui questo utente è membro. Esempio: “listed_count”: 9274 |
favoritesCount | Int | Il numero di Post a cui questo utente ha messo like nel corso della vita dell’account. Ortografia britannica utilizzata nel nome del campo per ragioni storiche. Esempio: “favourites_count”: 13 |
statusesCount | Int | Il numero di Post (inclusi i Retweet) pubblicati dall’utente. Esempio: “statuses_count”: 42 |
postedTime | date | La data e l’ora UTC di creazione dell’account utente su X. Esempio: “postedTime”: “2013-12-14T04:35:55.036Z” |
image | string | Un URL HTTPS che punta all’immagine del profilo dell’utente. Esempio: “image”: “https://pbs.twimg.com/profile_images/1283786620521652229/lEODkLTh_normal.jpg” |
Attributi obsoleti (deprecati)
Campo | Type | Descrizione |
---|---|---|
utcOffset | null | Il valore verrà impostato su null. Ancora disponibile tramite GET account/settings |
twitterTimeZone | null | Il valore verrà impostato su null. Ancora disponibile tramite GET account/settings come tzinfo_name |
languages | null | Il valore verrà impostato su null. Ancora disponibile tramite GET account/settings come language |
Esempi:
Oggetto Location
Dizionario dei dati di localizzazione
Campo | Type | Descrizione |
---|---|---|
objectType | string | Vedi qui per informazioni più dettagliate. Esempio: “objectType”: “place” |
displayName | string | Il nome completo della località. “displayName”: “United States” |
name | string | Nome della località secondo il formato JSON dei place di X. |
link | string | Un link alla rappresentazione JSON completa del place di X. “link”: “https://api.x.com/1.1/geo/id/27c45d804c777999.json” |
geo | object | L’oggetto delle coordinate geografiche di X. Può essere un poligono o un punto. Vedi geo |
countryCode | String | Codice paese abbreviato che rappresenta il paese in cui si trova questa località. Esempio: “countryCode”: “US” |
country | String | Nome del paese in cui si trova questa località. Esempio: “country”: “United States” |
oggetti derivati di profileLocations
Campo | Tipo | Descrizione |
address | object | All’interno dell’oggetto location di profileLocation nell’oggetto gnip. Indirizzo della località ricavato dall’arricchimento geografico del profilo. Il livello di granularità può variare. “address”: { ** “country”: “United States”, “countryCode”: “US”, “locality”: “Providence”, “region”: “Rhode Island”, “subRegion”: “Providence County” }** |
geo | object | All’interno dell’oggetto location di profileLocation nell’oggetto gnip. Coordinate del centroide della località ricavate dall’arricchimento geografico del profilo. ”geo”: { ** “coordinates”: [ -98.5, 39.76 ], “type”: “point” }** |
Oggetto entities di X
Esempio:
Oggetto X extended entities
twitter_extended_entities
utilizza lo stesso formato e lo stesso dizionario dei dati dell’oggetto extended_entities nel formato nativo arricchito descritto qui.
Esempio:
Oggetto Gnip
Dizionario dati
Campo | Tipo | Descrizione |
matching_rules | array | Contiene un array di oggetti regola corrispondenti che indicano la regola a cui l’attività corrisponde. “matching_rules”: [ ** { “tag”: null, “id”:** 1026514022567358500**, “id_str”:** “1026514022567358464” ** } ]** |
urls | array | Contiene un array dei collegamenti presenti nell’attività e i metadati dell’URL espanso per l’arricchimento di 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 | Contiene l’oggetto posizione derivato dall’arricchimento 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” ** } ] }** |
Esempio:
Esempi di payload degli activity stream
twitter_extended_entities
Cronologia dei metadata dei Tweet
Introduzione**
Alla base, X è una rete di comunicazione pubblica, in tempo reale e globale. Dal 2006 l’evoluzione di X è stata guidata sia dai modelli d’uso e dalle convenzioni degli utenti sia da nuove funzionalità e miglioramenti del prodotto. Se utilizzi i dati di X per ricerche storiche, comprendere la cronologia di questa evoluzione è importante per far emergere i Post di interesse dall’archivio dei dati. X è stata lanciata come semplice app mobile via SMS ed è cresciuta fino a diventare una piattaforma di comunicazione completa. Una piattaforma con un set completo di API. Le API sono sempre state un pilastro della rete X. La prima API è arrivata poco dopo il lancio di X. Quando il geotagging dei Post è stato introdotto per la prima volta nel 2009, è stato reso disponibile tramite una Geo API (e successivamente la possibilità di “geotaggare” un Post è stata integrata nell’interfaccia utente di X.com). Oggi le API di X alimentano la rete di comunicazione bidirezionale che è diventata una fonte di notizie dell’ultima ora e di condivisione di informazioni. Le opportunità per costruire su questo canale di comunicazione globale e in tempo reale sono infinite. X mette a disposizione due API storiche che forniscono accesso a ogni Post disponibile pubblicamente: Historical PowerTrack e la Full-Archive Search API. Entrambe le API forniscono un set di operatori utilizzati per eseguire query e raccogliere Post di interesse. Questi operatori corrispondono a una varietà di attributi associati a ogni Post, centinaia di attributi come il contenuto testuale del Post, il nome dell’account dell’autore e i link condivisi nel Post. I Post e i loro attributi sono codificati in JSON, un comune formato di interscambio dati basato su testo. Con l’introduzione di nuove funzionalità, sono comparsi nuovi attributi JSON e, di norma, sono stati introdotti nuovi operatori API per eseguire il match su tali attributi. Se il tuo caso d’uso prevede la necessità di ascoltare ciò che il mondo ha detto su X, più comprendi quando gli operatori hanno iniziato ad avere metadati JSON su cui effettuare il match, più efficaci potranno essere i tuoi filtri storici di PowerTrack. Di seguito introdurremo alcuni concetti chiave che preparano il terreno per comprendere come gli aggiornamenti nei metadati dei Post influenzino l’individuazione del tuo segnale dati di interesse.Concetti chiave**
Dalle convenzioni degli utenti agli oggetti di prima classe di X
Metadati dei Post, mutabilità, aggiornamenti e aggiornatezza
Media “nativi”
has:videos
, has:images
e has:media
. Questi operatori eseguono il match solo su contenuti multimediali condivisi tramite le funzionalità di X. Per trovare altri media ospitati al di fuori della piattaforma X, è necessario usare Operatori che eseguono il match sui metadata dell’URL.
Quindi, prima di approfondire i dettagli dei prodotti Historical PowerTrack e Full-Archive Search, facciamo un tour di come X, come prodotto e piattaforma, si è evoluto nel tempo.
Cronologia di X
Di seguito troverai una selezione della cronologia di X. La maggior parte di questi aggiornamenti di X ha in qualche modo influenzato in modo sostanziale il comportamento degli utenti, i contenuti JSON dei Post, gli Operatori di query o tutti e tre. Considerando X come una piattaforma API, i seguenti eventi hanno in qualche modo influito sui payload JSON usati per codificare i Post. A loro volta, questi dettagli JSON influiscono su come le API storiche di X eseguono il match su di essi.
Nota che questo elenco cronologico è generalmente accurato ma non esaustivo.
2006
- Ottobre
- @replies diventa una convenzione.
- I cashtag diventano un link cliccabile/ricercabile a giugno 2012.
- Novembre - Introduzione dei Preferiti.
2007
- Gennaio - le @reply diventano un oggetto di prima classe, con un pulsante di risposta nell’interfaccia utente e i metadati
in_reply_to
. - Aprile - i Retweet diventano una convenzione.
- Agosto - gli #hashtag emergono come strumento principale per cercare e organizzare i Post.
2009
- Febbraio - i $cashtags diventano una convenzione comune per discutere i simboli dei titoli azionari.
- Maggio - Viene introdotta la beta del Retweet con “Via @” anteposto al corpo del Post.
- Giugno - Introdotti gli account verificati.
- Agosto - I Retweet diventano un oggetto di prima classe con il pattern “RT @” e la nuova metadata
retweet_status
. - Ottobre - Lanciata la funzionalità List.
- Novembre - Viene lanciata la Post Geotagging API, fornendo il primo metodo per consentire agli utenti di condividere la posizione tramite app di terze parti.
2010
- Giugno - Introdotto X Places per il geotagging dei Post.
- Agosto - Lanciato il pulsante Post per i siti web. Condividere i link è diventato più semplice.
2011
- Maggio - Introdotto il pulsante Segui, semplificando il follow degli account associati ai siti web.
- Agosto - Introdotte le foto native.
2012
- Giugno - i $Cashtags diventano link cliccabili/ricercabili.
2014
- Marzo - Tag delle foto e fino a quattro foto supportate. Sono stati introdotti i metadati X Entities estesi.
- Aprile - Le emoji sono supportate nativamente nell’UI di X. Le emoji erano comunemente utilizzate nei Post almeno dal 2008.
2015
- Aprile - Una modifica al design dell’interfaccia utente del Post su X comporta un numero inferiore di Post con geotag.
- Ottobre - Introdotti i Sondaggi su X. In origine i Sondaggi supportavano due opzioni con un periodo di voto di 24 ore. A novembre i Sondaggi hanno iniziato a supportare quattro opzioni con periodi di voto da 5 minuti a sette giorni. I metadata dei Sondaggi sono stati resi disponibili (solo in formato nativo arricchito) a febbraio 2017.
2016
- Febbraio - GIF ricercabili ospitate nativamente nell’editor di composizione dei Post.
- Maggio - Annunciato “Doing More with 140” (dmw140), con piani per nuove modalità di gestione delle risposte e dei media allegati rispetto al limite di 140 caratteri di un Post.
- Giugno - Supporto video nativo
- Giugno - Retweet con citazione disponibili in generale.
- Giugno - Adesivi introdotti per le foto.
- Settembre - Introdotti i “native attachments”, con l’URL finale escluso dal conteggio dei 140 caratteri (“dmw140, parte 1”).
2017
- Febbraio - Metadati dei sondaggi X inclusi nei metadati del Post (solo formato nativo arricchito).
- Aprile - Introdotte le “Simplified Replies”, con gli account a cui si risponde non conteggiati nei 140 caratteri (“dmw140, parte 2”).
- Maggio - Aggiornamenti GDPR: user.time_zone impostato su null, user.utc_offset impostato su null, user.profile_background_image_url impostato al valore predefinito
- Giugno - Aggiornamento delle modifiche al formato di quoteTweet
- 29 settembre - La possibilità di modificare i Post viene distribuita a un piccolo gruppo di test. I metadati dei Post modificati vengono aggiunti all’Oggetto Post ove pertinente. Questo include gli oggetti edit_history ed edit_controls. Questi metadati non verranno restituiti per i Post creati prima dell’introduzione della funzionalità di modifica. Nessun operatore associato per questi metadati. Per saperne di più su come funzionano le modifiche ai Post, vedi le nozioni fondamentali sulla modifica dei Post
lang:
, usato per far corrispondere Post in una lingua specifica. X fornisce un servizio di classificazione della lingua (oltre 50 lingue supportate) e le X APIs forniscono questi metadati nel JSON generato per ogni Post. Quindi, se un Post è scritto in spagnolo, l’attributo JSON “lang” è impostato su “es”. Pertanto, se crei un filtro con la clausola lang:es
, corrisponderà solo ai Post classificati come spagnoli.
Le informazioni sulla timeline possono anche aiutare a interpretare meglio i dati dei Post ricevuti. Supponiamo che stessi studiando la condivisione di contenuti sulle Olimpiadi estive del 2008 e del 2012. Se applicassi solo l’operatore is:retweet
per trovare i Retweet, nel 2008 non corrisponderebbe alcun dato. Nel 2012, invece, ce ne sarebbero probabilmente milioni. Potresti quindi concludere erroneamente che nel 2008 i Retweet non fossero una consuetudine degli utenti, o che semplicemente nessuno avesse fatto Retweet su quelle Olimpiadi. Poiché i Retweet sono diventati un oggetto di prima classe nel 2009, è necessario aggiungere una clausola di regola RT @
per aiutarne l’identificazione nel 2008.
Sia i Retweet sia la classificazione linguistica dei Post sono esempi di attributi dei Post con una lunga storia e molti dettagli di prodotto. Di seguito tratteremo più nel dettaglio queste e altre classi di attributi importanti per effettuare il matching e comprendere i Dati X.
Riconoscere i falsi negativi
has:videos
, che corrisponde ai Post con video nativi, quella clausola non troverà corrispondenze per i Post precedenti al 2015.
Tuttavia, la condivisione di video era comune su X molto prima del 2015. In precedenza gli utenti condividevano link a video ospitati altrove, ma nel 2015 X ha introdotto nuove funzionalità di “condivisione video” direttamente nella piattaforma. Per trovare questi Post precedenti di interesse, includeresti una clausola di regola come url:"youtube.com"
.
Nota: con le Search API, ci sono stati alcuni casi in cui i metadata sono stati “backfillati” durante la ricostruzione dell’indice. Un buon esempio sono i cashtag nel 2015, l’indice di ricerca è stato ricostruito e, in quel processo, l’entità del simbolo è stata estratta dai corpi di tutti i Post, inclusi quelli dei primi del 2006, quando $
veniva usato principalmente come slang; “I hope it $oon!”.
Identificare e filtrare gli attributi dei Post importanti per il tuo caso d’uso
Profili X
Post originale e Retweet
is:retweet
consente agli utenti di includere o escludere i Retweet. Se si estraggono data precedenti ad agosto 2009, sono necessarie due strategie per il matching dei Retweet (o per evitarlo). Prima di agosto 2009, è necessario controllare il testo del Post stesso, utilizzando il matching di frase esatta, per riscontri sul pattern “RT @”. Per i periodi successivi ad agosto 2009, è disponibile l’operatore is:retweet
.
Classificazioni della lingua dei Post
lang:
è disponibile per l’intero archivio dei post. Con Historical PowerTrack, i metadata della classificazione della lingua di X sono disponibili nell’archivio a partire dal 26 marzo 2013.
Georeferenziazione dei Post
- Riferimenti geografici nel contenuto del Post
- Post geotaggati dall’utente
- Località “di origine” del profilo dell’account impostata dall’utente