Vai al contenuto principale

Introduzione

Gli endpoint di X API v2 forniscono i metadati di modifica dei Post. La funzione Modifica Post è stata introdotta per la prima volta per i test tra i dipendenti di X il 1º settembre 2022. A partire da quella data, i Post idonei sono modificabili per 30 minuti e fino a 5 volte. Tutti gli oggetti per i Post creati dal 29 settembre 2022 includono i metadati di modifica del Post, anche se il Post non è mai stato modificato. Ogni volta che un Post viene modificato, viene creato un nuovo ID del Post. La cronologia delle modifiche di un Post può essere descritta concatenando questi ID, a partire dall’ID originale. Inoltre, se un qualsiasi Post nella catena di modifiche viene eliminato, anche tutti i Post in quella catena vengono eliminati. Utilizzando X API v2, uno sviluppatore può determinare:
  • Se un Post era idoneo alla modifica al momento della creazione. Alcuni Post, come quelli con sondaggi o i Post programmati, non possono essere modificati.
  • I Post sono modificabili per 30 minuti e possono essere modificati fino a 5 volte. Per i Post modificabili è possibile vedere se resta tempo per la modifica e quante modifiche sono ancora possibili.
  • Se si sta visualizzando una versione modificata di un Post (nella maggior parte dei casi l’API restituirà la versione più recente di un Post, a meno che non venga richiesta una specifica versione precedente tramite ID del Post).
  • L’intera cronologia delle modifiche del Post.
  • Il coinvolgimento attribuito a ciascuna versione del Post.
Ci sono tre componenti nella cronologia delle modifiche di un Post:
  1. Per impostazione predefinita, il payload del Post conterrà un array di ID del Post che fanno parte della cronologia delle modifiche di un Post. Queste informazioni sono specificate da edit_history_tweet_ids, che è un campo predefinito nel payload del Post. Questo array conterrà almeno un ID: l’ID del Post originale, non modificato. Quando c’è un solo ID significa che il Post non ha cronologia delle modifiche.
  2. Puoi ottenere informazioni come se un Post fosse modificabile al momento della creazione, quanto tempo eventualmente resta per modificarlo e quante modifiche rimangono specificando edit_controls nel parametro tweet.fields.
  3. Infine, puoi ottenere gli oggetti Post per ciascun Post nella cronologia delle modifiche, specificando edit_history_tweet_ids utilizzando il parametro expansion
La maggior parte dei Post è idonea alla modifica. Tuttavia, i seguenti tipi di Post non lo sono:
  • Il Post è sponsorizzato
  • Il Post ha un sondaggio
  • Il Post è una risposta a un thread non proprio
  • Il Post è un Retweet (nota che i Quote Tweets sono idonei alla modifica)
  • Il Post è nullcast
  • Post della Community
  • Post Superfollow
  • Post collaborativo
Esempi
Gli esempi seguenti mostrano come uno sviluppatore può richiedere i metadati di modifica dei Post utilizzando X API v2. Nota: gli esempi seguenti utilizzano l’endpoint User Post Timeline, ma puoi richiedere questi metadati utilizzando gli stessi parametri (con fields ed expansions) per tutti gli endpoint che restituiscono Post (ad es. Posts lookup, search, filtered stream, ecc.)

Comportamento predefinito

Per impostazione predefinita, quando invii una richiesta API a qualsiasi endpoint che restituisce Oggetti Post nella X API v2, ricevi:
  • L’ID del Post
  • Il testo del Post
  • Un array di ID del Post che fanno parte della cronologia delle modifiche di un Post. Se viene fornito un solo ID, significa che il Post non è stato modificato.
Richiesta: curl --request GET 'https://api.x.com/2/users/:id/tweets' --header 'Authorization: Bearer $BEARER_TOKEN' Risposta di esempio:
  "data": [
    {
      "id": "1514991667853602823",
      "text": "abbiamo un pulsante di modifica",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"]
    }
  ]
}

Ottenere dati aggiuntivi con edit_controls

Se desideri metadati aggiuntivi relativi ai Post modificati, ad esempio se un Post era idoneo alla modifica al momento della creazione e quanto tempo resta prima che un Post non sia più modificabile, puoi richiedere queste informazioni utilizzando il parametro tweet.fields e impostandolo su edit_control. Richiesta: curl --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control' --header 'Authorization: Bearer $BEARER_TOKEN' Risposta di esempio:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "abbiamo un pulsante modifica",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ]
}

Ottenere gli Oggetti Post per tutti i Post nella cronologia delle modifiche di un Post

Gli esempi sopra forniscono un array di ID del Post nella cronologia delle modifiche di un Post. Se desideri l’Oggetto Post effettivo per ciascuno di questi ID del Post, puoi usare il parametro di espansione impostandolo su edit_history_tweet_ids. Gli Oggetti Post che compongono la cronologia delle modifiche saranno forniti nell’oggetto “includes”.  Richiesta:
      curl --location --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control&expansions=edit_history_tweet_ids' --header 'Authorization: Bearer $BEARER_TOKEN'
Esempio di risposta:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "abbiamo un pulsante di modifica",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ],
  "includes": {
    "tweets": [
      {
        "id": "1514991667853602822",
        "text": "ci serve un pulsante di modifica",
        "edit_history_tweet_ids": [
          "1514991667853602822",
          "1514991667853602823"
        ],
        "edit_controls": {
          "is_edit_eligible": true,
          "editable_until": "2022-04-21 09:35:20.311",
          "edits_remaining": 4
        }
      }
    ]
  }
}
I