Zum Hauptinhalt springen

Einführung

Die X API v2-Endpunkte stellen bearbeitete Post-Metadaten bereit. Die Funktion Posts bearbeiten wurde am 1. September 2022 zunächst intern von X-Mitarbeitern getestet. Seit diesem Datum sind berechtigte Posts 30 Minuten lang und bis zu 5 Mal bearbeitbar. Alle Objekte für Posts, die seit dem 29. September 2022 erstellt wurden, enthalten Bearbeitungsmetadaten, selbst wenn der Post nie bearbeitet wurde. Jedes Mal, wenn ein Post bearbeitet wird, wird eine neue Post-ID erstellt. Die Bearbeitungshistorie eines Posts lässt sich beschreiben, indem diese IDs miteinander verknüpft werden, beginnend mit der ursprünglichen ID. Zusätzlich gilt: Wenn ein Post in der Bearbeitungskette gelöscht wird, werden alle Posts in dieser Kette ebenfalls gelöscht. Mit der X API v2 kann ein Entwickler Folgendes herausfinden:
  • Ob ein Post zum Zeitpunkt der Erstellung bearbeitungsberechtigt war. Einige Posts, etwa solche mit Umfragen oder geplante Posts, können nicht bearbeitet werden.
  • Posts sind 30 Minuten lang bearbeitbar und können bis zu 5 Mal bearbeitet werden. Bei bearbeitbaren Posts können Sie sehen, ob noch Zeit für die Bearbeitung verbleibt und wie viele weitere Bearbeitungen möglich sind.
  • Ob Sie eine bearbeitete Version eines Posts ansehen (in den meisten Fällen liefert die API die neueste Version eines Posts zurück, es sei denn, eine bestimmte frühere Version wird per Post-ID angefordert).
  • Die gesamte Bearbeitungshistorie des Posts.
  • Das Engagement, das jeder Version des Posts zugeschrieben wird.
Es gibt drei Komponenten der Bearbeitungshistorie eines Posts:
  1. Standardmäßig enthält die Post-Payload ein Array von Post-IDs, die Teil der Bearbeitungshistorie eines Posts sind. Diese Information wird durch die edit_history_tweet_ids angegeben, ein Standardfeld in der Post-Payload. Dieses Array enthält mindestens eine ID, die ID des ursprünglichen, unbearbeiteten Posts. Wenn es nur eine ID gibt, bedeutet das, dass der Post keine Bearbeitungshistorie hat.
  2. Sie können Informationen abrufen, etwa ob ein Post zum Zeitpunkt seiner Erstellung bearbeitbar war, wie viel Zeit – falls vorhanden – für die Bearbeitung eines Posts verbleibt und wie viele Bearbeitungen noch möglich sind, indem Sie edit_controls in Ihrem tweet.fields-Parameter angeben.
  3. Schließlich können Sie die Post-Objekte für jeden Post in der Bearbeitungshistorie eines Posts abrufen, indem Sie die edit_history_tweet_ids über den Parameter expansions anfordern.
Die meisten Posts sind für die Bearbeitung berechtigt. Die folgenden Arten von Posts sind jedoch nicht berechtigt:
  • Post ist beworben
  • Post enthält eine Umfrage
  • Post ist eine Antwort in einem Thread, der nicht vom Autor selbst stammt
  • Post ist ein Retweet (beachten Sie, dass Quote Tweets bearbeitungsberechtigt sind)
  • Post ist nullcast
  • Community-Post
  • Superfollow-Post
  • Kollaborativer Post
Beispiele
Die folgenden Beispiele zeigen, wie ein Entwickler bearbeitete Post-Metadaten mit der X API v2 anfordern kann. Hinweis: Die Beispiele unten verwenden das User Post Timeline-Endpoint, aber Sie können diese Metadaten mit denselben Parametern (mit fields und expansions) für alle Endpunkte anfordern, die Posts zurückgeben (z. B. Posts lookup, search, filtered stream, etc.)

Standardverhalten

Standardmäßig erhalten Sie bei einer API-Anfrage an jeden endpoint, der Post-Objekte in der X API v2 zurückgibt:
  • Die Post-ID
  • Den Post-Text
  • Ein Array von Post-IDs, die Teil der Bearbeitungshistorie eines Posts sind. Wenn nur eine ID angegeben ist, bedeutet das, dass der Post nicht bearbeitet wurde.
Anfrage: curl --request GET 'https://api.x.com/2/users/:id/tweets' --header 'Authorization: Bearer $BEARER_TOKEN' Beispielantwort:
  "data": [
    {
      "id": "1514991667853602823",
      "text": "wir haben eine Bearbeiten-Schaltfläche",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"]
    }
  ]
}

Zusätzliche Daten mit edit_controls abrufen

Wenn Sie zusätzliche Metadaten zu bearbeiteten Posts benötigen – etwa ob ein Post bei seiner Erstellung zum Bearbeiten berechtigt war und wie viel Zeit für die Bearbeitbarkeit eines Posts verbleibt –, können Sie diese Informationen mit dem Parameter tweet.fields anfordern, indem Sie ihn auf edit_control setzen. Anfrage: curl --request GET 'https://api.x.com/2/users/:id/tweets?tweet.fields=edit_control' --header 'Authorization: Bearer $BEARER_TOKEN' Beispielantwort:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "wir haben einen Bearbeiten-Button",
      "edit_history_tweet_ids": ["1514991667853602822", "1514991667853602823"],
      "edit_controls": {
        "is_edit_eligible": true,
        "editable_until": "2022-04-21 09:35:20.311",
        "edits_remaining": 4
      }
    }
  ]
}

Abrufen von Post-Objekten für alle Posts in der Bearbeitungshistorie eines Posts

Die obigen Beispiele liefern ein Array von Post-IDs aus der Bearbeitungshistorie eines Posts. Wenn Sie das eigentliche Post-Objekt für jede dieser Post-IDs benötigen, können Sie den Expansion-Parameter verwenden und ihn auf edit_history_tweet_ids setzen. Die Post-Objekte, die die Bearbeitungshistorie bilden, werden im Objekt „includes“ bereitgestellt. Anfrage:
      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'`
Beispielantwort:
  {
  "data": [
    {
      "id": "1514991667853602823",
      "text": "wir haben eine Bearbeiten-Schaltfläche",
      "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": "wir brauchen eine Bearbeiten-Schaltfläche",
        "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