Vai al contenuto principale

Introduzione

Con il lancio della v2 della X API, abbiamo adottato un nuovo formato di risposta e un nuovo metodo per richiedere diversi oggetti e fields, che chiamiamo semplicemente formato X API v2. Nella sezione sulle differenze generali puoi apprendere alcune modifiche rilevanti per gli utenti standard ed Enterprise. Abbiamo inoltre preparato una guida specifica per il formato Native di Standard v1.1, il formato Native Enriched per Enterprise e il formato Activity Streams per Enterprise, che aiuta a mappare i fields e spiega quali fields ed expansions devi utilizzare per richiedere i nuovi fields della v2. Potresti anche essere interessato al nostro strumento visivo per la migrazione del formato dati, che ti aiuta a vedere rapidamente le differenze tra l’X API v1.1 data format e l’X API v2 format.

Differenze generali

Richiesta di oggetti e fields

Una delle differenze principali tra gli endpoint pre-v2 e v2 è che la versione più recente restituisce solo pochi fields per impostazione predefinita, mentre gli endpoint standard, premium ed Enterprise restituiscono la maggior parte dei fields di default. La nuova versione utilizza i parametri fields ed expansions per richiedere esplicitamente dati aggiuntivi oltre ai valori predefiniti, permettendoti di ottenere solo i dati necessari senza dover acquisire fields che non ti interessano.  Qualsiasi field che richiedi e che si riferisce all’oggetto dati primario verrà restituito in quell’oggetto insieme ai valori predefiniti. Tuttavia, se richiedi oggetti espansi utilizzando il parametro expansions, gli oggetti secondari verranno restituiti in un nuovo oggetto includes. Puoi correlare gli oggetti espansi presenti in includes all’oggetto primario utilizzando il campo id, che sarà presente in entrambi. Ad esempio, se utilizzi l’endpoint v2 Post lookup e includi il parametro expansions=author_id nella richiesta, riceverai il campo author_id all’interno dell’Oggetto Post primario, oltre a un oggetto utente per ciascun Post nell’oggetto includes; ognuno di questi includerà il campo predefinito id che può essere utilizzato per ricondurre l’oggetto utente all’Oggetto Post. Ecco un esempio di come si presenta:
{
  "data": [
    {
      "author_id": "2244994945",
      "id": "1397568983931392004",
      "text": "La Piattaforma per Sviluppatori X. Ooh la la! https://t.co/iGTdPXBfOv https://t.co/Ze8z8EODdg"
    }
  ],
  "includes": {
    "users": [
      {
        "id": "2244994945",
        "name": "X Dev",
        "username": "TwitterDev"
      }
    ]
  }
}

Progettazione JSON aggiornata

Oltre alle modifiche al modo in cui si richiedono determinati fields, X API v2 introduce anche nuovi design JSON per gli oggetti restituiti dalle API, inclusi gli oggetti Post e user.
  • Al livello root del JSON, gli endpoint standard restituiscono Oggetti Post in un array statuses, mentre X API v2 restituisce un array data.
  • Invece di fare riferimento agli “statuses” Retweeted e Quoted, il JSON di X API v2 fa riferimento a Tweet Retweeted e Quoted. Molti campi legacy e deprecati, come contributors e user.translator_type, vengono rimossi.
  • Invece di usare sia favorites (nel Post object) sia favourites (nell’oggetto utente), X API v2 usa il termine like.
  • X adotta la convenzione secondo cui i valori JSON privi di valore (ad esempio, null) non vengono inclusi nel payload. Gli attributi di Post e user sono inclusi solo se hanno valori non null.   

Nuovi campi v2

Abbiamo anche introdotto un nuovo set di campi nell’Oggetto Post, inclusi i seguenti:
  • Un campo conversation_id
  • Due nuovi campi di annotations, inclusi contesto ed entities
  • Diversi nuovi campi di metrics
  • Un nuovo campo reply_setting, che indica chi può rispondere a un determinato Post

Migrazione dal formato dati Standard v1.1 a v2

Se non l’hai già fatto, ti consigliamo di leggere innanzitutto l’introduzione alla migrazione dei formati dei dati. Potresti anche trovare utile il nostro strumento visivo per la migrazione del formato dei dati per vedere rapidamente le differenze tra il formato dati di X API v1.1 e il formato di X API v2. Il formato dati Standard v1.1, noto anche come formato nativo, è il formato principale fornito con gli endpoint di Standard v1.1. Se utilizzi il prodotto Premium, consulta la guida al formato nativo arricchito. I clienti Enterprise potrebbero utilizzare il formato nativo arricchito o activity streams, a seconda della configurazione nella console Gnip. 

Struttura del payload Standard v1.1 vs v2

La tabella seguente mostra gli oggetti e il formato di alto livello che ci si può aspettare di ricevere da v2 rispetto al formato v1.1.
Struttura v1.1Struttura v2
Predefinito{
all tweet object fields,
“entities”: {
“hashtags”: [],
“symbols”: [],
“user_mentions”: [],
“urls”: [],
“media”: []
},
“extended_entities”: ,
“user”: ,
“place”: ,
“retweeted_status/quoted_status”
}
{
“data”: [{
“id”,
“text”,

“edit_history_tweet_ids”
}]
}
Con parametri fields ed expansions definiti{
“data”: [{
tweet object fields,
“entities”: {
“hashtags”: [],
“cashtags”: [],
“mentions”: [],
“urls”: [],
},
“attachments”: {

“media_keys”: [],

“poll_ids”: []

}
}],
“includes”: [
“tweets”: [tweet objects],
“users”: [user objects],
“media”: [media objects],
“places”: [place object],

“polls”: [poll object]
],

“matching_rules”: []
}
Mappatura dei campi La sezione seguente descrive quali campi di v1.1 corrispondono ai campi di v2 e quali parametri di v2 sono necessari per ricevere il nuovo campo.  

Oggetto Tweet

Formato Twitter 1.1Formato Twitter v2Parametri v2 richiesti
created_atdata.created_attweet.fields=created_at
idN/D id è una stringa
id_strdata.idpredefinito
textdata.textpredefinito
full_textN/D text include il testo completo
truncatedN/D text include il testo completo
display_text_rangeN/D text include il testo completo
edit_historydata.edit_history_tweet_idspredefinito
edit_controlsdata.edit_controlstweet.fields=edit_controls
editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controls
entitiesdata.entitiestweet.fields=entities
entities.user_mentionsdata.entities.mentionstweet.fields=entities
entities.symbolsdata.entities.cashtagstweet.fields=entities
entities.hashtagsdata.entities.hashtagstweet.fields=entities
entities.urlsdata.entities.urlstweet.fields=entities
entities.mediaincludes.mediaexpansions=attachments.media_keys
extended_entitiesdata.attachmentstweet_fields=attachments
in_reply_to_status_idN/D referenced_tweets.id è una stringa
in_reply_to_status_id_strdata.referenced_tweets.id (se type=replied_to)expansions=referenced_tweets.id
in_reply_to_user_idN/D in_reply_to_user_id è una stringa
in_reply_to_user_id_strdata.in_reply_to_user_idtweet.fields=in_reply_to_user_id
in_reply_to_screen_nameincludes.users..usernametweet.fields=in_reply_to_user_id&expansions=entities.mentions.username
userincludes.usersexpansions=author_id
geodata.geo.place_idtweet.fields=geo
coordinatesdata.geo.place_idexpansions=geo.place_id
placedata.geo.place_idexpansions=geo.place_id
retweeted_statusdata.referenced_tweets.id (se type=retweeted)expansions=referenced_tweets.id
is_quoted_statusNon disponibile
quoted_status_idN/D referenced_tweets.id è una stringa
quoted_status_id_strdata.referenced_tweets.id (se type=quoted)expansions=referenced_tweets.id
quoted_status_permalinkNon disponibile
quoted_statusdata.referenced_tweets (se type=quoted)expansions=referenced_tweets.id
retweet_countdata.public_metrics.retweet_counttweet.fields=public_metrics
favorite_countdata.public_metrics.like_counttweet.fields=public_metrics
favoritedNon disponibile
retweetedNon disponibile
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitive
langdata.langtweet.fields=lang
scopesNon disponibile
withhelddata.withheldtweet.fields=withheld
Esempio
Oggetto Tweet nella v1.1

Esempio di URI con parametri:

https://api.x.com/1.1/statuses/lookup.json?id=1359554366051504129&tweet_mode=extended
Oggetto Tweet e richiesta con la v2

Esempio di URI con parametri:

https://api.x.com/2/tweets?ids=1359554366051504129&tweet.fields=attachments,author_id,context_annotations,conversation_id,created_at,entities,geo,id,in_reply_to_user_id,lang,possibly_sensitive,public_metrics,referenced_tweets,reply_settings,text,withheld
{
“created_at”: “Wed Feb 10 17:26:34 +0000 2021”,
“id”: 1359554366051504129,
“id_str”: “1359554366051504129”,
“text”: “Vai pure, segui un altro account di cuccioli. Non ti giudicheremo. \n\nIntroduciamo gli endpoint per la gestione dei follow alla nuova… https://t.co/3cBZKZUevF”,
“truncated”: true,
“entities”: {
“hashtags”: [],
“symbols”: [],
“user_mentions”: [],
“urls”: [{
“url”: “https://t.co/3cBZKZUevF”,
“expanded_url”: “https://twitter.com/i/web/status/1359554366051504129”,
“display_url”: “twitter.com/i/web/status/1…”,
“indices”: [
111,
134
]
}]
},

“in_reply_to_status_id”: null,
“in_reply_to_status_id_str”: null,
“in_reply_to_user_id”: null,
“in_reply_to_user_id_str”: null,
“in_reply_to_screen_name”: null,
“user”: {

},
“geo”: null,
“coordinates”: null,
“place”: null,
“contributors”: null,
“is_quote_status”: false,
“retweet_count”: 18,
“favorite_count”: 98,
“favorited”: false,
“retweeted”: false,
“possibly_sensitive”: false,
“possibly_sensitive_appealable”: false,
“lang”: “en”
}
{
“data”: [{
“id”: “1359554366051504129”,
“text”: “Vai pure, segui un altro account di cuccioli. Non ti giudicheremo. \n\nIntroduciamo gli endpoint per la gestione dei follow alla nuova #TwitterAPI. Ora puoi utilizzare l’API v2 per seguire e smettere di seguire gli account. Scopri di più https://t.co/mtpd9VIMDa”,
“lang”: “en”,
“conversation_id”: “1359554366051504129”,
“possibly_sensitive”: false,
“reply_settings”: “everyone”,
“created_at”: “2021-02-10T17:26:34.000Z”,
“author_id”: “2244994945”,
“public_metrics”: {
“retweet_count”: 18,
“reply_count”: 11,
“like_count”: 98,
“quote_count”: 7
},
“entities”: {
“hashtags”: [{
“start”: 110,
“end”: 121,
“tag”: “TwitterAPI”
}],
“urls”: [{
“start”: 194,
“end”: 217,
“url”: “https://t.co/mtpd9VIMDa”,
“expanded_url”: “https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465”,
“display_url”: “devcommunity.com/t/introducing-…”,
“images”: [{
“url”: “https://pbs.twimg.com/news_img/1359554367905427457/DczC72__?format=jpg&name=orig”,
“width”: 1200,
“height”: 630
},
{
“url”: “https://pbs.twimg.com/news_img/1359554367905427457/DczC72__?format=jpg&name=150x150”,
“width”: 150,
“height”: 150
}
],
“status”: 200,
“title”: “Introduciamo i nuovi endpoint per la gestione dei follow all’X API v2”,
“description”: “Seguire o non seguire? Ora sei libero di rispondere a questa domanda come preferisci utilizzando l’X API v2. Oggi siamo entusiasti di annunciare il rilascio dei nuovi endpoint per la gestione dei follow nella nuova Twitter API. Come anticipato quando abbiamo lanciato gli endpoint di ricerca dei follow poco più di un mese fa, la possibilità di gestire le relazioni di follow è finalmente qui. Questi sono alcuni dei nostri endpoint più popolari nelle nostre API v1.1, quindi siamo entusiasti di sbloccare un’ampia gamma di casi d’uso su X API v2. N…”,
“unwound_url”: “https://devcommunity.x.com/t/introducing-the-new-manage-follows-endpoints-to-the-twitter-api-v2/149465
}]
},
“context_annotations”: [{
“domain”: {
“id”: “46”,
“name”: “Categoria di Brand”,
“description”: “Categorie all’interno delle Verticali di Brand che restringono l’ambito dei Brand”
},
“entity”: {
“id”: “781974596752842752”,
“name”: “Servizi”
}
},
{
“domain”: {
“id”: “47”,
“name”: “Brand”,
“description”: “Brand e Aziende”
},
“entity”: {
“id”: “10045225402”,
“name”: “Twitter”
}
}
]
}]
}

Oggetto utente

Formato Twitter 1.1Formato Twitter v2Parametri v2 richiesti
user_iddata.author_idtweet.fields=author_id
user.idN/D: usa includes.users.id
user.id_strincludes.users.idexpansions=author_id
user.nameincludes.users.nameexpansions=author_id
user.screen_nameincludes.users.usernameexpansions=author_id
user.locationincludes.users.locationexpansions=author_id&user.fields=location
user.descriptionincludes.users.descriptionexpansions=author_id&user.fields=description
user.urlincludes.users.urlexpansions=author_id&user.fields=entities
user.entitiesincludes.users.entities
user.entities.url.urls.urlincludes.users.entities.url.urls.url
user.entities.url.urls.expanded_urlincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entities
user.entities.url.urls.display_urlincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entities
user.entities.url.urls.display_url.indicies[0]includes.users.entities.url.urls.startexpansions=author_id&user.fields=entities
user.entities.url.urls.display_url.indicies[1]includes.users.entities.url.urls.endexpansions=author_id&user.fields=entities
user.protectedincludes.users.protectedexpansions=author_id&user.fields=protected
user.followers_countincludes.users.public_metrics.followers_countexpansions=author_id&user.fields=public_metrics
user.friends_countincludes.users.public_metrics.following_countexpansions=author_id&user.fields=public_metrics
user.listed_countincludes.users.public_metrics.listed_countexpansions=author_id&user.fields=public_metrics
user.created_atincludes.users.created_atexpansions=author_id&user.fields=created_at
user.favourites_count
user.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verified
user.statuses_countincludes.users.public_metrics.tweet_countexpansions=author_id&user.fields=public_metrics
user.profile_image_url_httpsincludes.users.profile_image_urlexpansions=author_id&user.fields=profile_image_url
Esempio
Oggetto utente nella versione 1.1Oggetto utente e richiesta con v2
”user”: {
“id”: 2244994945,
“id_str”: “2244994945”,
“name”: “Twitter Dev”,
“screen_name”: “TwitterDev”,
“location”: “127.0.0.1”,
“description”: “The voice of the #TwitterDev team and your official source for updates, news, and events, related to the #TwitterAPI.”,
“url”: “https://t.co/3ZX3TNiZCY”,
“entities”: {
“url”: {
“urls”: [{
“url”: “https://t.co/3ZX3TNiZCY”,
“expanded_url”: “https://developer.x.com/en/community”,
“display_url”: “developer.x.com/en/community”,
“indices”: [
0,
23
]
}]
},
“description”: {
“urls”: []
}
},
“protected”: false,
“followers_count”: 517232,
“friends_count”: 2032,
“listed_count”: 1722,
“created_at”: “Sat Dec 14 04:35:55 +0000 2013”,
“favourites_count”: 2134,
“utc_offset”: null,
“time_zone”: null,
“geo_enabled”: true,
“verified”: true,
“statuses_count”: 3677,
“lang”: null,
“contributors_enabled”: false,
“is_translator”: false,
“is_translation_enabled”: false,
“profile_background_color”: “FFFFFF”,
“profile_background_image_url”: “http://abs.twimg.com/images/themes/theme1/bg.png”,
“profile_background_image_url_https”: “https://abs.twimg.com/images/themes/theme1/bg.png”,
“profile_background_tile”: false,
“profile_image_url”: “http://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“profile_image_url_https”: “https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“profile_banner_url”: “https://pbs.twimg.com/profile_banners/2244994945/1611792896”,
“profile_link_color”: “0084B4”,
“profile_sidebar_border_color”: “FFFFFF”,
“profile_sidebar_fill_color”: “DDEEF6”,
“profile_text_color”: “333333”,
“profile_use_background_image”: false,
“has_extended_profile”: true,
“default_profile”: false,
“default_profile_image”: false,
“following”: null,
“follow_request_sent”: null,
“notifications”: null,
“translator_type”: “regular”
}
{
“data”: [{
“author_id”: “2244994945”,
“id”: “1362876655061073928”,
“text”: “From our living rooms to yours 🐱‍💻🛋️Our developer advocates have some exciting Twitch streams and virtual events planned to help you get started with the new #TwitterAPI. Check out the schedule for details, and let us know if you want to see more!\n👇\nhttps://t.co/cixDY9qkvH”
}],
“includes”: {
“users”: [{
“public_metrics”: {
“followers_count”: 517233,
“following_count”: 2034,
“tweet_count”: 3677,
“listed_count”: 1727
},
“username”: “TwitterDev”,
“entities”: {
“url”: {
“urls”: [{
“start”: 0,
“end”: 23,
“url”: “https://t.co/3ZX3TNiZCY”,
“expanded_url”: “https://developer.x.com/en/community”,
“display_url”: “developer.x.com/en/community”
}]
},
“description”: {
“hashtags”: [{
“start”: 17,
“end”: 28,
“tag”: “TwitterDev”
},
{
“start”: 105,
“end”: 116,
“tag”: “TwitterAPI”
}
]
}
},
“description”: “The voice of the #TwitterDev team and your official source for updates, news, and events, related to the #TwitterAPI.”,
“name”: “Twitter Dev”,
“verified”: true,
“location”: “127.0.0.1”,
“id”: “2244994945”,
“protected”: false,
“url”: “https://t.co/3ZX3TNiZCY”,
“profile_image_url”: “https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“created_at”: “2013-12-14T04:35:55.000Z”
}]
}
}

Oggetti entities ed expanded entities

Formato Twitter 1.1Formato Twitter v2Parametri v2 richiestiTipo in v2
entitiesdata.entitiestweet.fields=entitiesobject
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesarray of objects
entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesnumber
entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesnumber
entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesstring
entities.urlsdata.entities.urlstweet.fields=entitiesarray of objects
entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesnumber
entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesnumber
entities.urls.urldata.entities.urls.urltweet.fields=entitiesstring
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesarray of objects
entities.user_mentions.indicies[0]data.entities.mentions.starttweet.fields=entitiesnumber
entities.user_mentions.indicies[1]data.entities.mentions.endtweet.fields=entitiesnumber
entities.user_mentions.screen_namedata.entities.mentions.usernametweet.fields=entitiesstring
entities.symbolsdata.entities.cashtagstweet.fields=entitiesarray of objects
entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesnumber
entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesnumber
entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesstring
entities.mediaincludes.mediaexpansions=attachments.media_keysarray of objects
entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysstring
entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysstring
entities.media.media_urlN/D usa includes.media.urlstring
entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlstring
entities.media.url
entities.media.display_url
entities.media.expanded_url
entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlstring
extended_entitiesdata.attachmentstweet_fields=attachmentsobject
extended_entitiesdata.attachments.media_keystweet.fields=attachmentsarray of objects
extended_entities.mediaincludes.mediaexpansions=attachments.media_keysarray of objects
extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysstring
extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysstring
extended_entities.media.sizes.thumb.wNon disponibile
extended_entities.media.sizes.thumb.hNon disponibile
extended_entities.media.sizes.thumb.resizeNon disponibile
extended_entities.media.sizes.large.wincludes.media.heightexpansions=attachments.media_keys&media.fields=height
extended_entities.media.sizes.large.hincludes.media.widthexpansions=attachments.media_keys&media.fields=width
extended_entities.media.sizes.large.resizeNon disponibile
extended_entities.media.sizes.small.wNon disponibile
extended_entities.media.sizes.small.hNon disponibile
extended_entities.media.sizes.small.resizeNon disponibile
extended_entities.media.sizes.medium.wNon disponibile
extended_entities.media.sizes.medium.hNon disponibile
extended_entities.media.sizes.medium.resizeNon disponibile
extended_entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlstring
extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlstring
extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msnumber
Esempio
Entità ed entità estese in v1.1 (con video)Entità, allegati e includes in v2

https://api.x.com/2/tweets?ids=1370161532013735937&expansions=attachments.media_keys,entities.mentions.username&tweet.fields=entities&user.fields=created_at,description,entities,location,name,profile_image_url,protected,public_metrics,url,username,verified,withheld&media.fields=duration_ms,height,media_key,preview_image_url,public_metrics,type,url,width
”entities”: {
“hashtags”: [{
“text”: “test”,
“indices”: [
8,
13
]
}],
“symbols”: [],
“user_mentions”: [{
“screen_name”: “TwitterDev”,
“name”: “Twitter Dev”,
“id”: 2244994945,
“id_str”: “2244994945”,
“indices”: [
31,
42
]
}],
“urls”: [{
“url”: “https://t.co/XVLZ3uwikc”,
“expanded_url”: “https://developer.x.com/en”,
“display_url”: “developer.x.com/en”,
“indices”: [
91,
114
]
}],
“media”: [{
“id”: 1370161464028196868,
“id_str”: “1370161464028196868”,
“indices”: [
115,
138
],
“media_url”: “http://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“media_url_https”: “https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“url”: “https://t.co/dz4oByygWA”,
“display_url”: “pic.x.com/dz4oByygWA”,
“expanded_url”: “https://twitter.com/furiouscamper/status/1370161532013735937/video/1”,
“type”: “photo”,
“sizes”: {
“thumb”: {
“w”: 150,
“h”: 150,
“resize”: “crop”
},
“small”: {
“w”: 383,
“h”: 680,
“resize”: “fit”
},
“large”: {
“w”: 720,
“h”: 1280,
“resize”: “fit”
},
“medium”: {
“w”: 675,
“h”: 1200,
“resize”: “fit”
}
}
}]
},
“extended_entities”: {
“media”: [{
“id”: 1370161464028196868,
“id_str”: “1370161464028196868”,
“indices”: [
115,
138
],
“media_url”: “http://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“media_url_https”: “https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg”,
“url”: “https://t.co/dz4oByygWA”,
“display_url”: “pic.x.com/dz4oByygWA”,
“expanded_url”: “https://twitter.com/furiouscamper/status/1370161532013735937/video/1”,
“type”: “video”,
“sizes”: {
“thumb”: {
“w”: 150,
“h”: 150,
“resize”: “crop”
},
“small”: {
“w”: 383,
“h”: 680,
“resize”: “fit”
},
“large”: {
“w”: 720,
“h”: 1280,
“resize”: “fit”
},
“medium”: {
“w”: 675,
“h”: 1200,
“resize”: “fit”
}
},
“video_info”: {
“aspect_ratio”: [
9,
16
],
“duration_millis”: 5140,
“variants”: [{
“bitrate”: 950000,
“content_type”: “video/mp4”,
“url”: “https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/480x852/rAuFVMEqs0MeP4P4.mp4?tag=12
},
{
“bitrate”: 2176000,
“content_type”: “video/mp4”,
“url”: “https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/720x1280/ZxVL5qYO-DNVuSyq.mp4?tag=12
},
{
“content_type”: “application/x-mpegURL”,
“url”: “https://video.twimg.com/ext_tw_video/1370161464028196868/pu/pl/EGVpuZpo-wYxTNCq.m3u8?tag=12
},
{
“bitrate”: 632000,
“content_type”: “video/mp4”,
“url”: “https://video.twimg.com/ext_tw_video/1370161464028196868/pu/vid/320x568/M7VtocAwKPFdkqzF.mp4?tag=12
}
]
},
“additional_media_info”: {
“monetizable”: false
}
}]
}
{
“data”: [{
“entities”: {
“hashtags”: [{
“start”: 8,
“end”: 13,
“tag”: “test”
}],
“mentions”: [{
“start”: 31,
“end”: 42,
“username”: “TwitterDev”
}],
“urls”: [{
“start”: 91,
“end”: 114,
“url”: “https://t.co/XVLZ3uwikc”,
“expanded_url”: “https://developer.x.com/en”,
“display_url”: “developer.x.com/en”,
“status”: 200,
“title”: “Casi d’uso, tutorial e documentazione”,
“description”: “Pubblica e analizza Tweet, ottimizza annunci e crea esperienze cliente uniche con l’API di Twitter, l’X Ads API e Twitter per Siti Web. Iniziamo a sviluppare.”,
“unwound_url”: “https://developer.x.com/en
},
{
“start”: 115,
“end”: 138,
“url”: “https://t.co/dz4oByygWA”,
“expanded_url”: “https://x.com/furiouscamper/status/1370161532013735937/video/1”,
“display_url”: “pic.x.com/dz4oByygWA”
}
]
},
“id”: “1370161532013735937”,
“text”: “Un altro #test con un video e menzione @TwitterDev. Entusiasta per la nuova documentazione di migrazione del formato! https://t.co/XVLZ3uwikc https://t.co/dz4oByygWA”,
“attachments”: {
“media_keys”: [
“7_1370161464028196868”
]
}
}],
“includes”: {
“media”: [{
“type”: “video”,
“height”: 1280,
“public_metrics”: {
“view_count”: 37
},
“width”: 720,
“media_key”: “7_1370161464028196868”,
“duration_ms”: 5140,
“preview_image_url”: “https://pbs.twimg.com/ext_tw_video_thumb/1370161464028196868/pu/img/cGLCoXBHVktkwlC5.jpg
}],
“users”: [{
“public_metrics”: {
“followers_count”: 517233,
“following_count”: 2034,
“tweet_count”: 3677,
“listed_count”: 1727
},
“created_at”: “2013-12-14T04:35:55.000Z”,
“profile_image_url”: “https://pbs.twimg.com/profile_images/1354494203451961345/d8HkZl6p_normal.jpg”,
“description”: “La voce del team #TwitterDev e la tua fonte ufficiale per aggiornamenti, notizie ed eventi relativi all’#TwitterAPI.”,
“verified”: true,
“id”: “2244994945”,
“username”: “TwitterDev”,
“protected”: false,
“entities”: {
“url”: {
“urls”: [{
“start”: 0,
“end”: 23,
“url”: “https://t.co/3ZX3TNiZCY”,
“expanded_url”: “https://developer.x.com/en/community”,
“display_url”: “developer.x.com/en/community”
}]
},
“description”: {
“hashtags”: [{
“start”: 17,
“end”: 28,
“tag”: “TwitterDev”
},
{
“start”: 105,
“end”: 116,
“tag”: “TwitterAPI”
}
]
}
},
“url”: “https://t.co/3ZX3TNiZCY”,
“name”: “Twitter Dev”,
“location”: “127.0.0.1”
}]
}
}

Oggetto Place

Formato Twitter 1.1Formato Twitter v2Parametri v2 richiesti
placedata.geo.place_idtweet.fields=geo
place.idincludes.places.idexpansions=geo.place_id
place.id.place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_type
place.id.nameincludes.places.nameexpansions=geo.place_id&place.fields=name
place.id.full_nameincludes.places.full_nameexpansions=geo.place_id
place.id.country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_code
place.id.countryincludes.places.countryexpansions=geo.place_id&place.fields=country
place.id.contained_withinincludes.places.contained_withinexpansions=geo.place_id&place.fields=contained_within
place.id.bounding_box.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=place_type
place.id.bounding_box.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geo
place.id.attributesincludes.places.propertiesexpansions=geo.place_id&place.fields=geo
Esempio
Oggetto Place in v1.1Oggetto Place con v2

https://api.x.com/2/tweets?ids=1370161532013735937&expansions=geo.place_id&tweet.fields=geo&place.fields=contained_within,country,country_code,full_name,geo,id,name,place_type
”place”: {
“id”: “f7eb2fa2fea288b1”,
“url”: “https://api.x.com/1.1/geo/id/f7eb2fa2fea288b1.json”,
“place_type”: “city”,
“name”: “Lakewood”,
“full_name”: “Lakewood, CO”,
“country_code”: “US”,
“country”: “United States”,
“contained_within”: [],
“bounding_box”: {
“type”: “Polygon”,
“coordinates”: [
[
[
-105.193475,
39.60973
],
[
-105.053164,
39.60973
],
[
-105.053164,
39.761974
],
[
-105.193475,
39.761974
]
]
]
},
“attributes”:
}
{
“data”: [{
“id”: “1370161532013735937”,
“text”: “Another #test with a video and @TwitterDev mention. Excited for new format migration docs! https://t.co/XVLZ3uwikc https://t.co/dz4oByygWA”,
“geo”: {
“place_id”: “f7eb2fa2fea288b1”
}
}],
“includes”: {
“places”: [{
“name”: “Lakewood”,
“place_type”: “city”,
“full_name”: “Lakewood, CO”,
“id”: “f7eb2fa2fea288b1”,
“geo”: {
“type”: “Feature”,
“bbox”: [
-105.193475,
39.60973,
-105.053164,
39.761974
],
“properties”:
},
“country_code”: “US”,
“country”: “United States”
}]
}
Passaggio successivo

Migrazione dal formato dati Native Enriched a v2

Il formato dati Native Enriched è utilizzato dai nostri prodotti Enterprise. Il formato dati Native Enriched è stato aggiornato per fornire i metadati dei Tweet modificati. Per saperne di più sui metadati dei Tweet modificati, consulta la pagina Nozioni di base sull’editing dei Tweet. Se utilizzi gli endpoint Standard v1.1, fai riferimento alla guida da Standard v1.1 a v2. Se utilizzi i prodotti Enterprise con Activity Streams, abbiamo anche una guida da Activity Streams a v2 per te. X API v2 introduce nuovi design JSON per gli oggetti Tweet e user.
  • A livello radice del JSON, il formato Native Enriched restituisce oggetti Tweet in un array results, mentre X API v2 restituisce un array data.
  • Invece di utilizzare sia favorites (nell’oggetto Tweet) sia favourites (nell’oggetto user), X API v2 utilizza il termine like.
  • X adotta la convenzione secondo cui i valori JSON privi di valore (ad esempio null) non vengono inclusi nel payload. Gli attributi di Tweet e user sono inclusi solo se hanno valori non null.
  • Tutti i campi id in v2 saranno in formato stringa
Oltre alle modifiche apportate al nuovo formato JSON, abbiamo introdotto anche un nuovo set di fields nell’oggetto Tweet, tra cui:
  • conversation_id
  • reply_settings
  • alt_text sui media
  • Due nuovi campi annotations, inclusi context ed entities
  • Diversi nuovi campi metrics
  • Diversi nuovi campi polls
Molti campi legacy e deprecati vengono rimossi:
  • contributors
  • Alcuni campi di entities.media ed extended_entities.media
  • filter_level
  • timestamp_ms
  • truncated

Struttura del payload Native Enriched vs v2

La seguente tabella mostra gli oggetti e il formato di alto livello che ci si può aspettare di ricevere con v2 rispetto al formato Native Enriched.
Struttura Native EnrichedStruttura v2
Predefinito{
tweet object fields,

“user”: ,
“place”: ,
“entities”: {
“hashtags”: [],
“urls”: [],
“user_mentions”: [],
“symbols”: [],
“annotations”: [],
“media”: []
},
“extended_entities”: ,
“matching_rules”: []
}
{
“data”: [{
“id”,
“text”,

“edit_history_tweet_ids”
}]
}
Con parametri fields ed expansions definiti{
“data”: [{
tweet object fields,
“entities”: {
“hashtags”: [],
“cashtags”: [],
“mentions”: [],
“urls”: [],
},
“attachments”: {
“media_keys”: [],
“poll_ids”: []
}
}],
“includes”: [
“tweets”: [user objects],
“users”: [user objects],
“media”: [media objects],
“places”: [place object],
“polls”: [poll object]
],
“matching_rules”: []
}
Mappatura dei campi La sezione seguente descrive quali campi Native Enriched corrispondono ai campi v2 e quali parametri v2 sono necessari per ricevere il nuovo campo.  

Oggetto Tweet

Formato Native EnrichedFormato Twitter v2Parametri v2 richiestiTipo in v2
created_atdata.created_attweet.fields=created_atString
idN/A - Vedi id
id_strdata.idDefaultString
textdata.textDefaultString
edit_historydata.edit_history_tweet_idsDefaultArray
edit_controlsdata.edit_controlstweet.fields=edit_controlsObject
editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBoolean
display_text_rangeN/A - il testo include il testo completo
sourcedata.sourcetweet.fields=sourceString
truncatedN/A - il testo include il testo completo
Non disponibiledata.conversation_idtweet.fields=conversation_idString
Non disponibiledata.reply_settingstweet.fields=reply_settingsString
in_reply_to_status_idN/A - Vedi referenced_tweets.id
in_reply_to_status_id_strdata.referenced_tweets.id (if type=replied_to)expansions=referenced_tweets.idString
in_reply_to_user_idN/A - Vedi in_reply_to_user_id_str
in_reply_to_user_id_strdata.in_reply_to_user_idtweet.fields=in_reply_to_user_idString
in_reply_to_screen_nameincludes.users..usernametweet.fields=in_reply_to_user_id&expansions=entities.mentions.usernameString
userincludes.usersexpansions=author_idObject
user.id_strdata.author_idtweet.fields=author_idString
geodata.geo.place_idtweet.fields=geo
coordinatesdata.geo.place_idtweet.fields=geo
placedata.geo.place_idtweet.fields=geo
is_quoted_statusdata.referenced_tweets.id (if type=quoted)tweet.fields=referenced_tweetsString
extended_tweet.full_textN/A - il testo è il testo completo
Non disponibiledata.public_metricstweet.fields=public_metricsObject
quote_countdata.public_metrics.quote_counttweet.fields=public_metricsInt
reply_countdata.public_metrics.reply_counttweet.fields=public_metricsInt
retweet_countdata.public_metrics.retweet_counttweet.fields=public_metricsInt
favorite_countdata.public_metrics.like_counttweet.fields=public_metricsInt
Non disponibiledata.non_public_metricstweet.fields=non_public_metricsObject
Non disponibiledata.non_public_metrics.impression_counttweet.fields=non_public_metricsInt
Non disponibiledata.non_public_metrics.url_link_counttweet.fields=non_public_metricsInt
Non disponibiledata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsInt
Non disponibiledata.organic_metricstweet.fields=organic_metricsObject
Non disponibiledata.organic_metrics.like_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.retweet_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.reply_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.impression_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
Non disponibiledata.promoted_metricstweet.fields=promoted_metricsObject
Non disponibiledata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
contributorsNon disponibileNon disponibile
entitiesdata.entitiestweet.fields=entitiesObject
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesArray di oggetti
entities.symbolsdata.entities.cashtagstweet.fields=entitiesArray di oggetti
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray di oggetti
entities.urlsdata.entities.urlstweet.fields=entitiesArray di oggetti
entities.mediaincludes.mediaexpansions=attachments.media_keysArray di oggetti
entities.annotationstweet.fields=entities,context_annotationsObject
entities.annotations.contextdata.context_annotationstweet.fields=entities,context_annotationsArray di oggetti
Nessun equivalentedata.context_annotations.domaintweet.fields=context_annotationsObject
entities.annotations.context.context_domain_id_strdata.context_annotations.domain.idtweet.fields=context_annotationsString
entities.annotations.context.context_domain_idNon disponibileNon disponibile - vedi data.context_annotations.domain.id per il formato stringa
entities.annotations.context.context_domain_namedata.context_annotations.domain.nametweet.fields=context_annotationsString
entities.annotations.context.context_domain_descriptiondata.context_annotations.domain.descriptiontweet.fields=context_annotationsString
Nessun equivalentedata.context_annotations.entitytweet.fields=context_annotationsObject
entities.annotations.context.context_entity_id_strdata.context_annotations.entity.idtweet.fields=context_annotationsString
entities.annotations.context.context_entity_idNon disponibileNon disponibile - vedi data.context_annotations.entity.id per il formato stringa
entities.annotations.context.context_entity_namedata.context_annotations.entity.nametweet.fields=context_annotationsString
entities.annotations.context.context_entity_descriptiondata.context_annotations.entity.descriptiontweet.fields=context_annotationsString
entities.annotations.entitydata.entities.annotationstweet.fields=entities,context_annotationsArray di oggetti
extended_entitiesdata.attachmentstweet_fields=attachmentsObject
favoritedNon disponibileNon disponibile
retweetedNon disponibileNon disponibile
retweeted_status
possibly_sensitivedata.possibly_sensitivetweet.fields=possibly_sensitiveBoolean
langdata.langtweet.fields=langString
filter_levelNon disponibileNon disponibile
scopesNon disponibileNon disponibile
timestamp_msNon disponibileNon disponibile
withhelddata.withheldtweet.fields=withheldArray di oggetti
matching_rulesmatching_rulesArray di oggetti
matching_rules.idNon disponibileNon disponibile
matching_rules.id_strmatching_rules.idPredefinito con filtered streamString
matching_rules.tagmatching_rules.tagPredefinito con filtered streamString

Oggetto utente

Formato Native EnrichedFormato Twitter v2Parametri v2 richiestiTipo in v2
userincludes.usersexpansions=author_idArray of objects
user.idNon disponibileN/A - Vedi includes.users.idString
user.id_strincludes.users.idexpansions=author_idString
user.nameincludes.users.nameexpansions=author_idString
user.screen_nameincludes.user.usernameexpansions=author_idString
user.locationincludes.users.locationexpansions=author_id&user.fields=locationObject
user.descriptionincludes.users.descriptionexpansions=author_id&user.fields=descriptionString
Non disponibileincludes.users.urlexpansions=author_id&user.fields=urlString
user.followers_countincludes.users.public_metrics.followers_countexpansions=author_id&user.fields=public_metricsInt
user.friends_countincludes.users.public_metrics.following_countexpansions=author_id&user.fields=public_metricsInt
user.listed_countincludes.users.public_metrics.listed_countexpansions=author_id&user.fields=public_metricsInt
user.created_atincludes.users.created_atexpansions=author_id&user.fields=created_atString
user.favourites_countNon ancora disponibile
user.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verifiedBoolean
Non disponibileincludes.users.pinned_tweet_idexpansions=author_id&user.fields=pinned_tweet_idString
user.statuses_countincludes.users.public_metrics.tweet_countexpansions=author_id&user.fields=public_metricsInt
user.profile_image_url_httpsincludes.users.profile_image_urlexpansions=author_id&user.fields=profile_image_urlString
user.translator_typeNon disponibileNon disponibile
user.utc_offsetNon disponibileNon disponibile
user.time_zoneNon disponibileNon disponibile
user.geo_enabledNon disponibileNon disponibile
user.langNon disponibileNon disponibile - dedurre dal lang del Tweet
user.contributors_enabledNon disponibileNon disponibile
user.is_translatorNon disponibileNon disponibile
user.profile_background_colorNon disponibileNon disponibile
user.profile_background_image_urlNon disponibileNon disponibile
user.profile_background_image_url_httpsNon disponibileNon disponibile
user.profile_background_titleNon disponibileNon disponibile
user.profile_sidebar_border_colorNon disponibileNon disponibile
user.profile_sidebar_fill_colorNon disponibileNon disponibile
user.profile_text_colorNon disponibileNon disponibile
user.profile_user_background_imageNon disponibileNon disponibile
user.profile_image_urlVedi includes.user.profile_image_url
user.default_profileNon disponibileNon disponibile
user.default_profile_imageNon disponibileNon disponibile
user.followingNon disponibileNon disponibile
user.follow_request_sentNon disponibileNon disponibile
user.notificationsNon disponibileNon disponibile
user.withheld_in_countriesincludes.users.withheldexpansions=author_id&user.fields=withheldObject
user.protectedincludes.users.protectedexpansions=author_id&user.fields=protectedBoolean
Non disponibileincludes.users.entitiesexpansions=author_id&user.fields=entitiesObject
Non disponibileincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObject
Non disponibileincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesArray of objects
Non disponibileincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesString
user.urlincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.descriptionsexpansions=author_id&user.fields=entitiesObject
Non disponibileincludes.users.entities.descriptions.hashtagsexpansions=author_id&user.fields=entitiesArray of objects
Non disponibileincludes.users.entities.descriptions.hashtags.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.descriptions.hashtags.endexpansions=author_id&user.fields=entitiesInt
Incluso in user.descriptionincludes.users.entities.descriptions.hashtags.tagexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.descriptions.mentionsexpansions=author_id&user.fields=entitiesArray of objects
Non disponibileincludes.users.entities.descriptions.mentions.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.descriptions.mentions.endexpansions=author_id&user.fields=entitiesInt
Incluso in user.descriptionincludes.users.entities.descriptions.mentions.usernameexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.descriptions.cashtagsexpansions=author_id&user.fields=entitiesArray of objects
Non disponibileincludes.users.entities.descriptions.cashtags.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.descriptions.cashtags.endexpansions=author_id&user.fields=entitiesInt
Incluso in user.descriptionincludes.users.entities.descriptions.cashtags.tagexpansions=author_id&user.fields=entitiesString

Oggetti entities ed expanded entities

Formato Native EnrichedFormato Twitter v2Parametri v2 richiestiTipo in v2
entitiesdata.entitiestweet.fields=entitiesObject
entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray of objects
entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesInteger
entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesInteger
entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesString
entities.urlsdata.entities.urlstweet.fields=entitiesArray of objects
entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesInteger
entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesInteger
entities.urls.urldata.entities.urls.urltweet.fields=entitiesString
entities.urls.expanded_urldata.entities.urls.expanded_urltweet.fields=entitiesString
entities.urls.display_urldata.entities.urls.display_urltweet.fields=entitiesString
entities.urls.unwound.urldata.entities.urls.unwound_urltweet.fields=entitiesString
entities.urls.unwound.statusdata.entities.urls.statustweet.fields=entitiesString
entities.urls.unwound.titledata.entities.urls.titletweet.fields=entitiesString
entities.urls.unwound.descriptiondata.entities.urls.descriptiontweet.fields=entitiesString
Non disponibiledata.entities.urls.imagestweet.fields=entitiesArray of objects
Non disponibiledata.entities.urls.images.urltweet.fields=entitiesString
Non disponibiledata.entities.urls.images.widthtweet.fields=entitiesInt
Non disponibiledata.entities.urls.images.heighttweet.fields=entitiesInt
entities.user_mentionsdata.entities.mentionstweet.fields=entitiesArray of objects
entities.user_mentions.indicies[0]data.entities.mentions.starttweet.fields=entitiesInteger
entities.user_mentions.indicies[1]data.entities.mentions.endtweet.fields=entitiesInteger
entities.user_mentions.screen_namedata.entities.mentions.usernametweet.fields=entitiesString
entities.symbolsdata.entities.cashtagstweet.fields=entitiesArray of objects
entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesInteger
entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesInteger
entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesString
entities.media OR extended_entities.mediaincludes.mediaexpansions=attachments.media_keysArray of objects
entities.media.id_str OR extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysString
entities.media.id OR extended_entities.media.idNon disponibile - id è una String
entities.media.type OR extended_entities.media.typeincludes.media.media.typeexpansions=attachments.media_keysString
entities.media.indices OR extended_entities.media.indicesNon disponibileNon disponibile
Non disponibileincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textString
entities.media.additional_media_info OR extended_entities.media.additional_media_infoNon disponibileNon disponibile
entities.media.additional_media_info.monetizable OR extended_entities.media.additional_media_info.monetizableNon disponibileNon disponibile
entities.media.media_url OR extended_entities.media.media_urlN/A - Vedi includes.media.urlString
entities.media.media_url_https OR extended_entities.media.media_url_httpsincludes.media.urlexpansions=attachments.media_keys&media.fields=urlString
entities.media.url OR extended_entities.media.url
entities.media.display_url OR extended_entities.media.expanded_url
entities.media.expanded_url
entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlString
extended_entitiesdata.attachmentstweet_fields=attachmentsObject
extended_entitiesdata.attachments.media_keystweet.fields=attachmentsArray of objects
Non disponibiledata.attachments.poll_idstweet.fields=attachmentsArray of objects
extended_entities.media.sizes.thumb.wNon disponibile
extended_entities.media.sizes.thumb.hNon disponibile
extended_entities.media.sizes.thumb.resizeNon disponibile
extended_entities.media.sizes.large.wincludes.media.heightexpansions=attachments.media_keys&media.fields=height
extended_entities.media.sizes.large.hincludes.media.widthexpansions=attachments.media_keys&media.fields=width
extended_entities.media.sizes.large.resizeNon disponibileNon disponibile
extended_entities.media.sizes.small.wNon disponibileNon disponibile
extended_entities.media.sizes.small.hNon disponibileNon disponibile
extended_entities.media.sizes.small.resizeNon disponibileNon disponibile
extended_entities.media.sizes.medium.wNon disponibileNon disponibile
extended_entities.media.sizes.medium.hNon disponibileNon disponibile
extended_entities.media.sizes.medium.resizeNon disponibileNon disponibile
extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlString
extended_entities.media.video_info.aspect_ratioNon disponibileNon disponibile
extended_entities.media.variantsNon disponibileNon disponibile
extended_entities.media.variants.bitrateNon disponibileNon disponibile
extended_entities.media.variants.content_typeNon disponibileNon disponibile
extended_entities.media.variants.urlNon disponibileNon disponibile
extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msInt
Non disponibileincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObject
Non disponibileincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsInt
Non disponibileincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObject
Non disponibileincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObject
Non disponibileincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.promoted_metricexpansions=attachments.media_keys&media.fields=promoted_metricsObject
Non disponibileincludes.media.promoted_metric.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metric.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metric.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metric.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metric.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt

Oggetto Place

Formato Native EnrichedFormato Twitter v2Parametri v2 richiestiTipo in v2
placeincludes.placesexpansions=geo.place_idArray di oggetti
place.idincludes.places.idexpansions=geo.place_idStringa
place.urlNon disponibileNon disponibile
place.id.place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typeStringa
place.id.nameincludes.places.nameexpansions=geo.place_id&place.fields=nameStringa
place.id.full_nameincludes.places.full_nameexpansions=geo.place_idStringa
place.id.country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codeStringa
place.id.countryincludes.places.countryexpansions=geo.place_id&place.fields=countryStringa
place.id.contained_withinincludes.places.contained_withinexpansions=geo.place_id&place.fields=contained_withinArray
place.id.bounding_box.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=place_typeStringa
place.id.bounding_box.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoArray
place.id.attributesincludes.places.propertiesexpansions=geo.place_id&place.fields=geoOggetto

Oggetto poll

Formato Native EnrichedFormato Twitter v2Parametri v2 richiestiTipo in v2
entities.pollsincludes.pollsexpansions=attachments.poll_idsArray di oggetti
Non disponibileincludes.polls.idexpansions=attachments.poll_idsStringa
entities.poll.optionsincludes.polls.optionsexpansions=attachments.poll_idsArray di oggetti
entities.polls.options.positionincludes.polls.options.positionexpansions=attachments.poll_idsInt
entities.polls.options.textincludes.polls.options.labelexpansions=attachments.poll_idsStringa
Non disponibileincludes.polls.options.votesexpansions=attachments.poll_idsInt
Non disponibileincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusStringa
entities.polls.duration_minutesincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesInt
entities.polls.end_datetimeincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeData (ISO 8601)

Migrazione dal formato dati Activity Streams a v2

Il formato dati Activity Streams è disponibile con i nostri prodotti Enterprise. Il formato dati Activity Streams è stato aggiornato per fornire i metadati dei Tweet modificati. Per saperne di più sui metadati di Edit Tweet, consulta la pagina Nozioni di base su Edit Tweets. Se utilizzi gli endpoint Standard v1.1, fai riferimento alla guida da Standard v1.1 a v2. Se utilizzi gli endpoint premium o il formato Native Enriched per Enterprise, fai riferimento alla guida da Native Enriched a v2. X API v2 introduce nuovi design JSON per gli oggetti Post e user.
  • Al livello root del JSON, il formato Activity Streams restituisce oggetti Tweet in un array results, mentre X API v2 restituisce un array data.
  • Invece di fare riferimento alle “attività” di Retweet e Quote, il JSON di X API v2 fa riferimento a Retweet e Quote Tweets.
  • Invece di usare sia favorites (nell’oggetto Tweet) sia favourites (nell’oggetto user), X API v2 utilizza il termine like.
  • Twitter adotta la convenzione secondo cui i valori JSON senza valore (ad esempio, null) non vengono inclusi nel payload. Gli attributi dei Tweet e degli user sono inclusi solo se hanno valori non null.
  • Tutti i campi id in v2 saranno in formato stringa.
Oltre alle modifiche apportate al nuovo formato JSON, abbiamo introdotto anche un nuovo set di fields nell’oggetto Tweet, tra cui:
  • conversation_id
  • reply_settings
  • alt_text sui media
  • Due nuovi campi annotations, inclusi context ed entities
  • Diversi nuovi campi metrics
  • Diversi nuovi campi polls
Molti campi legacy e deprecati vengono rimossi o sostituiti:
  • display_text_range
  • generator
  • gnip
  • link
  • objectType
  • provider
  • twitter_entities.symbols sostituito con data.entities.cashtags
  • Alcuni campi di twitter_extended_entities.media e twitter_entities.media
  • twitter_filter_level
  • twitterTimeZone
  • verb

Oggetto Tweet

Formato Activity StreamsFormato Twitter v2Parametri v2 richiestiTipo in v2
postedTimedata.created_attweet.fields=created_atDate (ISO 8601)
generatorNon disponibileNon disponibile
generator.linkNon disponibileNon disponibile
generator.displayNamedata.sourcetweet.fields=sourceString
twitter_langdata.langtweet.fields=langString
Non disponibiledata.conversation_idtweet.fields=conversation_idString
Non disponibiledata.reply_settingstweet.fields=reply_settingsString
Non disponibiledata.possibly_sensitivetweet.fields=possibly_sensitiveBoolean
Non disponibiledata.withheldtweet.fields=withheldObject
objectTypeNon disponibileNon disponibile
verbNon disponibileNon disponibile
providerNon disponibileNon disponibile
provider.objectTypeNon disponibileNon disponibile
provider.displayNameNon disponibileNon disponibile
provider.linkNon disponibileNon disponibile
linkNon disponibileNon disponibile
display_text_rangeNon disponibileNon disponibile
objectNon disponibileNon disponibile
object.objectTypeNon disponibileNon disponibile
object.idNon disponibileNon disponibile
object.summarydata.textdefaultString
object.edit_historydata.edit_history_tweet_idsdefaultArray
object.edit_controlsdata.edit_controlstweet.fields=edit_controlsObject
object.editabledata.edit_controls.is_edit_eligibletweet.fields=edit_controlsBoolean
object.linkNon disponibileNon disponibile
object.postedTimedata.created_attweet.fields=created_atDate (ISO 8601)
Derivato da actor.iddata.author_idtweet.fields=created_at
twitter_filter_levelNon disponibileNon disponibile
Derivato da username in inReplyTo.linkdata.in_reply_to_user_idtweet.fields=in_reply_to_user_idString
Non disponibiledata.referenced_tweetstweet.fields=referenced_tweetsArray of objects
Non disponibiledata.referenced_tweets.typetweet.fields=referenced_tweetsString
Derivato da inReplyTo.linkdata.referenced_tweets.idtweet.fields=referenced_tweetsString
Non disponibiledata.attachmentstweet.fields=attachmentsObject
Derivato da twitter_entities.media.id_strdata.attachments.media_keystweet.fields=attachmentsArray
Non disponibiledata.attachments.poll_idstweet.fields=attachmentsArray
twitter_entitiesdata.entitiestweet.fields=entitiesObject
Non disponibiledata.entities.annotationstweet.fields=entitiesArray of objects
Non disponibiledata.entities.annotations.starttweet.fields=entitiesInt
Non disponibiledata.entities.annotations.endtweet.fields=entitiesInt
Non disponibiledata.entities.annotations.probabilitytweet.fields=entitiesFloat
Non disponibiledata.entities.annotations.typetweet.fields=entitiesString
Non disponibiledata.entities.annotations.normalized_texttweet.fields=entitiesString
twitter_entities.urlsdata.entities.urlstweet.fields=entitiesArray of objects
twitter_entities.urls.indices[0]data.entities.urls.starttweet.fields=entitiesInt
twitter_entities.urls.indices[1]data.entities.urls.endtweet.fields=entitiesInt
twitter_entities.urls.urldata.entities.urls.urltweet.fields=entitiesString
twitter_entities.urls.expanded_urldata.entities.urls.expanded_urltweet.fields=entitiesString
twitter_entities.urls.display_urldata.entities.urls.display_urltweet.fields=entitiesString
Non disponibiledata.entities.urls.imagestweet.fields=entitiesArray of objects
Non disponibiledata.entities.urls.images.urltweet.fields=entitiesString
Non disponibiledata.entities.urls.images.widthtweet.fields=entitiesInt
Non disponibiledata.entities.urls.images.heighttweet.fields=entitiesInt
gnip.urls.expanded_statusdata.entities.urls.statustweet.fields=entitiesInt
gnip.urls.expanded_url_titledata.entities.urls.titletweet.fields=entitiesString
gnip.urls.expanded_url_descriptiondata.entities.urls.descriptiontweet.fields=entitiesString
gnip.urls.expanded_urldata.entities.urls.unwound_urltweet.fields=entitiesString
twitter_entities.symbolsdata.entities.cashtagstweet.fields=entitiesArray of objects
twitter_entities.symbols.indices[0]data.entities.cashtags.starttweet.fields=entitiesInt
twitter_entities.symbols.indices[1]data.entities.cashtags.endtweet.fields=entitiesInt
twitter_entities.symbols.textdata.entities.cashtags.tagtweet.fields=entitiesString
twitter_entities.hashtagsdata.entities.hashtagstweet.fields=entitiesArray of objects
twitter_entities.hashtags.indices[0]data.entities.hashtags.starttweet.fields=entitiesInt
twitter_entities.hashtags.indices[1]data.entities.hashtags.endtweet.fields=entitiesInt
twitter_entities.hashtags.textdata.entities.hashtags.tagtweet.fields=entitiesString
twitter_entities.user_mentionsdata.entities.mentionstweet.fields=entitiesArray of objects
twitter_entities.user_mentions.indices[0]data.entities.mentions.starttweet.fields=entitiesInt
twitter_entities.user_mentions.indices[1]data.entities.mentions.endtweet.fields=entitiesInt
twitter_entities.user_mentions.screen_namedata.entities.mentions.tagtweet.fields=entitiesString
twitter_entities.user_mentions.id_strdata.entities.mentions.idtweet.fields=entitiesString
twitter_entities.user_mentions.idNon disponibileNon disponibile
Non disponibiledata.context_annotationstweet.fields=context_annotationsArray of objects
Non disponibiledata.context_annotations.domaintweet.fields=context_annotationsObject
Non disponibiledata.context_annotations.domain.idtweet.fields=context_annotationsString
Non disponibiledata.context_annotations.domain.nametweet.fields=context_annotationsString
Non disponibiledata.context_annotations.domain.descriptiontweet.fields=context_annotationsString
Non disponibiledata.context_annotations.entitytweet.fields=context_annotationsObject
Non disponibiledata.context_annotations.entity.idtweet.fields=context_annotationsString
Non disponibiledata.context_annotations.entity.nametweet.fields=context_annotationsString
Non disponibiledata.context_annotations.entity.descriptiontweet.fields=context_annotationsString
geodata.geotweet.fields=geoObject
Derivato da location.linkdata.geo.place_idtweet.fields=geoString
Non disponibiledata.public_metricstweet.fields=public_metricsObject
favoritesCountdata.public_metrics.like_counttweet.fields=public_metricsInt
retweetCountdata.public_metrics.retweet_counttweet.fields=public_metricsInt
Non disponibiledata.public_metrics.quote_counttweet.fields=public_metricsInt
Non disponibiledata.public_metrics.reply_counttweet.fields=public_metricsInt
Non disponibiledata.non_public_metricstweet.fields=non_public_metricsObject
Non disponibiledata.non_public_metrics.impression_counttweet.fields=non_public_metricsInt
Non disponibiledata.non_public_metrics.url_link_counttweet.fields=non_public_metricsInt
Non disponibiledata.non_public_metrics.user_profile_counttweet.fields=non_public_metricsInt
Non disponibiledata.organic_metricstweet.fields=organic_metricsObject
Non disponibiledata.organic_metrics.like_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.retweet_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.reply_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.impression_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.url_link_counttweet.fields=organic_metricsInt
Non disponibiledata.organic_metrics.user_profile_counttweet.fields=organic_metricsInt
Non disponibiledata.promoted_metricstweet.fields=promoted_metricsObject
Non disponibiledata.promoted_metrics.like_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.retweet_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.reply_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.impression_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.url_link_counttweet.fields=promoted_metricsInt
Non disponibiledata.promoted_metrics.user_profile_counttweet.fields=promoted_metricsInt
gnip.profileLocationsNon disponibileNon disponibile
gnip.profileLocations.addressNon disponibileNon disponibile
gnip.profileLocations.address.countryNon disponibileNon disponibile
gnip.profileLocations.address.countryCodeNon disponibileNon disponibile
gnip.profileLocations.displayNameNon disponibileNon disponibile
gnip.profileLocations.geoNon disponibileNon disponibile
gnip.profileLocations.geo.coordinatesNon disponibileNon disponibile
gnip.profileLocations.geo.typeNon disponibileNon disponibile
gnip.profileLocations.objectTypeNon disponibileNon disponibile

Oggetto utente

Formato Activity StreamsFormato X v2Parametri v2 richiestiTipo in v2
actorincludes.usersexpansions=author_idArray di oggetti
Derivato da actor.idincludes.users.idexpansions=author_idString
actor.displayNameincludes.users.nameexpansions=author_idString
actor.preferredUsernameincludes.users.usernameexpansions=author_idString
actor.postedTimeincludes.users.created_atexpansions=author_id&user.fields=created_atData (ISO 8601)
actor.summaryincludes.users.descriptionexpansions=author_id&user.fields=descriptionString
Non disponibileincludes.users.pinned_tweet_idexpansions=author_id&user.fields=pinned_tweet_idString
Non disponibileincludes.users.protectedexpansions=author_id&user.fields=protectedBoolean
actor.linkNon disponibileNon disponibile - costruire da includes.users.username
actor.twitterTimeZoneNon disponibileNon disponibile - dedurre da Post created_at
actor.utcOffsetNon disponibileNon disponibile - dedurre da Post created_at
actor.favoritesCountNon disponibileNon disponibile
actor.followersCountincludes.users.public_metrics.followers_countexpansions=author_id&user.fields=public_metricsInt
actor.friendsCountincludes.users.public_metrics.following_countexpansions=author_id&user.fields=public_metricsInt
actor.listedCountincludes.users.public_metrics.listed_countexpansions=author_id&user.fields=public_metricsInt
actor.statusesCountincludes.users.public_metrics.tweet_countexpansions=author_id&user.fields=public_metricsInt
actor.languages[]Non disponibileNon disponibile - dedurre da Post lang
actor.location.displayNameincludes.users.locationexpansions=author_id&user.fields=locationString
actor.imageincludes.users.profile_image_urlexpansions=author_id&user.fields=profile_image_urlString
actor.linksincludes.users.urlexpansions=author_id&user.fields=urlString
actor.verifiedincludes.users.verifiedexpansions=author_id&user.fields=verifiedBoolean
Non disponibileincludes.users.withheldexpansions=author_id&user.fields=withheldObject
Non disponibileincludes.users.entitiesexpansions=author_id&user.fields=entitiesObject
Non disponibileincludes.users.entities.urlexpansions=author_id&user.fields=entitiesObject
actor.linksincludes.users.entities.url.urlsexpansions=author_id&user.fields=entitiesArray di oggetti
Non disponibileincludes.users.entities.url.urls.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.url.urls.endexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.url.urls.urlexpansions=author_id&user.fields=entitiesString
actor.links.hrefincludes.users.entities.url.urls.expanded_urlexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.url.urls.display_urlexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.descriptionexpansions=author_id&user.fields=entitiesObject
Non disponibileincludes.users.entities.description.hashtagsexpansions=author_id&user.fields=entitiesArray di oggetti
Non disponibileincludes.users.entities.description.hashtags.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.description.hashtags.endexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.description.hashtags.tagexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.description.mentionsexpansions=author_id&user.fields=entitiesArray di oggetti
Non disponibileincludes.users.entities.description.mentions.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.description.mentions.endexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.description.mentions.usernameexpansions=author_id&user.fields=entitiesString
Non disponibileincludes.users.entities.description.cashtagsexpansions=author_id&user.fields=entitiesArray di oggetti
Non disponibileincludes.users.entities.description.cashtags.startexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.description.cashtags.endexpansions=author_id&user.fields=entitiesInt
Non disponibileincludes.users.entities.description.cashtags.tagexpansions=author_id&user.fields=entitiesString

Oggetto Poll

Formato Activity StreamsFormato Twitter v2Parametri v2 obbligatoriTipo in v2
Non disponibileincludes.pollsexpansions=attachments.poll_idsArray di oggetti
Non disponibileincludes.polls.idexpansions=attachments.poll_idsStringa
Non disponibileincludes.polls.optionsexpansions=attachments.poll_idsArray di oggetti
Non disponibileincludes.polls.options.positionexpansions=attachments.poll_idsInt
Non disponibileincludes.polls.options.labelexpansions=attachments.poll_idsStringa
Non disponibileincludes.polls.options.votesexpansions=attachments.poll_idsInt
Non disponibileincludes.polls.voting_statusexpansions=attachments.poll_ids&poll.fields=voting_statusStringa
Non disponibileincludes.polls.duration_minutesexpansions=attachments.poll_ids&poll.fields=duration_minutesInt
Non disponibileincludes.polls.end_datetimeexpansions=attachments.poll_ids&poll.fields=end_datetimeData (ISO 8601)

Oggetto Place

Formato Activity StreamsFormato X v2Parametri v2 richiestiTipo in v2
locationincludes.placesexpansions=geo.place_idarray di oggetti
location.displayNameincludes.places.full_nameexpansions=geo.place_idstringa
Estratto da location.linkincludes.places.idexpansions=geo.place_idstringa
location.nameincludes.places.nameexpansions=geo.place_id&place.fields=namestringa
location.country_codeincludes.places.countryexpansions=geo.place_id&place.fields=countrystringa
location.twitter_place_typeincludes.places.place_typeexpansions=geo.place_id&place.fields=place_typestringa
location.twitter_country_codeincludes.places.country_codeexpansions=geo.place_id&place.fields=country_codestringa
location.geoincludes.places.geoexpansions=geo.place_id&place.fields=geooggetto
location.geo.typeincludes.places.geo.typeexpansions=geo.place_id&place.fields=geostringa
location.geo.coordinatesincludes.places.geo.bboxexpansions=geo.place_id&place.fields=geoarray
Non disponibileincludes.places.geo.propertiesexpansions=geo.place_id&place.fields=geooggetto

Oggetto media

Formato Activity StreamsFormato X v2Parametri v2 richiestiTipo in v2
twitter_entities.media OR twitter_extended_entities.mediaincludes.mediaexpansions=attachments.media_keysArray di oggetti
twitter_entities.media.id_str OR twitter_extended_entities.media.id_strincludes.media.media_keyexpansions=attachments.media_keysString
twitter_entities.media.id OR twitter_extended_entities.media.idNon disponibileNon disponibile
twitter_entities.media.indices OR twitter_extended_entities.media.indicesNon disponibileNon disponibile
twitter_entities.media.additional_media_info OR twitter_extended_entities.media.additional_media_infoNon disponibileNon disponibile
twitter_entities.media.additional_media_info.monetizable OR twitter_extended_entities.media.additional_media_info.monetizableNon disponibileNon disponibile
twitter_entities.media.media_url OR twitter_extended_entities.media.media_urlNon disponibileNon disponibile
twitter_entities.media.media_url_https OR twitter_extended_entities.media.media_url_httpsincludes.media.preview_image_urlexpansions=attachments.media_keys&media.fields=preview_image_urlString
twitter_entities.media.url OR twitter_extended_entities.media.urlNon disponibileNon disponibile
twitter_entities.media.display_url OR twitter_extended_entities.media.display_urlNon disponibileNon disponibile
twitter_entities.media.expanded_url OR twitter_extended_entities.media.expanded_urlNon disponibileNon disponibile
twitter_entities.media.type OR twitter_extended_entities.media.typeincludes.media.typeexpansions=attachments.media_keysString
twitter_entities.media.sizes OR twitter_extended_entities.media.sizesNon disponibileNon disponibile
twitter_entities.media.sizes.thumb OR twitter_extended_entities.media.sizes.thumbNon disponibileNon disponibile
twitter_entities.media.sizes.thumb.h OR twitter_extended_entities.media.sizes.thumb.hNon disponibileNon disponibile
twitter_entities.media.sizes.thumb.w OR twitter_extended_entities.media.sizes.thumb.wNon disponibileNon disponibile
twitter_entities.media.sizes.thumb.resize OR twitter_extended_entities.media.sizes.thumb.resizeNon disponibileNon disponibile
twitter_entities.media.sizes.small OR twitter_extended_entities.media.sizes.smallNon disponibileNon disponibile
twitter_entities.media.sizes.small.h OR twitter_extended_entities.media.sizes.small.hNon disponibileNon disponibile
twitter_entities.media.sizes.small.w OR twitter_extended_entities.media.sizes.small.wNon disponibileNon disponibile
twitter_entities.media.sizes.small.resize OR twitter_extended_entities.media.sizes.small.resizeNon disponibileNon disponibile
twitter_entities.media.sizes.medium OR twitter_extended_entities.media.sizes.mediumNon disponibileNon disponibile
twitter_entities.media.sizes.medium.h OR twitter_extended_entities.media.sizes.medium.hNon disponibileNon disponibile
twitter_entities.media.sizes.medium.w OR twitter_extended_entities.media.sizes.medium.wNon disponibileNon disponibile
twitter_entities.media.sizes.medium.resize OR twitter_extended_entities.media.sizes.medium.resizeNon disponibileNon disponibile
twitter_entities.media.sizes.large OR twitter_extended_entities.media.sizes.largeNon disponibileNon disponibile
twitter_entities.media.sizes.large.h OR twitter_extended_entities.media.sizes.large.hincludes.media.heightexpansions=attachments.media_keys&media.fields=heightInt
twitter_entities.media.sizes.large.w OR twitter_extended_entities.media.sizes.large.wincludes.media.widthexpansions=attachments.media_keys&media.fields=widthInt
twitter_entities.media.sizes.large.resize OR twitter_extended_entities.media.sizes.large.resizeNon disponibileNon disponibile
twitter_extended_entities.media.video_infoNon disponibileNon disponibile
twitter_extended_entities.media.video_info.aspect_ratioNon disponibileNon disponibile
twitter_extended_entities.media.video_info.duration_millisincludes.media.duration_msexpansions=attachments.media_keys&media.fields=duration_msInt
twitter_extended_entities.media.video_info.variantsNon disponibileNon disponibile
twitter_extended_entities.media.video_info.variants.bitrateNon disponibileNon disponibile
twitter_extended_entities.media.video_info.variants.content_typeNon disponibileNon disponibile
twitter_extended_entities.media.video_info.variants.urlNon disponibileNon disponibile
Non disponibileincludes.media.alt_textexpansions=attachments.media_keys&media.fields=alt_textString
Non disponibileincludes.media.public_metricsexpansions=attachments.media_keys&media.fields=public_metricsObject
Non disponibileincludes.media.public_metrics.view_countexpansions=attachments.media_keys&media.fields=public_metricsInt
Non disponibileincludes.media.non_public_metricsexpansions=attachments.media_keys&media.fields=non_public_metricsObject
Non disponibileincludes.media.non_public_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.non_public_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=non_public_metricsInt
Non disponibileincludes.media.organic_metricsexpansions=attachments.media_keys&media.fields=organic_metricsObject
Non disponibileincludes.media.organic_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.organic_metrics.view_countexpansions=attachments.media_keys&media.fields=organic_metricsInt
Non disponibileincludes.media.promoted_metricsexpansions=attachments.media_keys&media.fields=promoted_metricsObject
Non disponibileincludes.media.promoted_metrics.playback_0_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metrics.playback_25_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metrics.playback_50_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metrics.playback_75_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metrics.playback_100_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt
Non disponibileincludes.media.promoted_metrics.view_countexpansions=attachments.media_keys&media.fields=promoted_metricsInt

Oggetto delle regole di corrispondenza

Formato Activity StreamsFormato Twitter v2Parametri v2 richiestiTipo in v2
gnip.matching_rulesmatching_rulesPredefinito nel filtered streamArray di oggetti
gnip.matching_rules.tagmatching_rules.tagPredefinito nel filtered streamStringa
gnip.matching_rules.tag.idNon disponibileNon disponibile
gnip.matching_rules.tag.id_strmatching_rules.idPredefinito nel filtered streamStringa

Strumento visivo per la migrazione del formato dei dati

Lo strumento visivo per la migrazione del formato dei dati è un’applicazione web che mostra i fields che corrispondono dal formato dati di X API v1.1 al formato di X API v2 per un determinato Tweet o oggetto utente. È possibile fornire all’applicazione un Tweet ID o un user ID per visualizzare questa corrispondenza. Tieni presente che dovrai accedere con il tuo account Twitter per utilizzare l’App.
I