Zum Hauptinhalt springen

Gesprächsverläufe mit der X API

Wenn Sie betrachten, wie sich Unterhaltungen auf X entwickeln, kann ein Post mehrere Gesprächsverläufe auslösen, die jeweils mit der Beteiligung weiterer Personen an Länge und Komplexität zunehmen. Das Erkennen von Beziehungen zwischen Posts und das Verständnis von Gesprächsverläufen ist Teil des Payloads und der Suchfunktionen der X API v2. Wenn Posts als Antwort auf einen Post (eine „Antwort“) oder als Antwort auf eine Antwort veröffentlicht werden, gibt es für jede Antwort eine definierte conversation_id, die mit der Post-ID des ursprünglichen Posts übereinstimmt, der die Unterhaltung gestartet hat. Antworten auf einen bestimmten Post sowie Antworten auf diese Antworten sind alle Teil der Unterhaltung, die aus dem einzelnen ursprünglichen Post hervorgeht. Unabhängig davon, wie viele Antwort-Threads entstehen, teilen sie sich alle dieselbe conversation_id mit dem ursprünglichen Post, der die Unterhaltung ausgelöst hat. Mit der X API v2 können Sie einen gesamten Gesprächsverlauf abrufen und rekonstruieren, sodass Sie nachvollziehen können, was gesagt wird und wie sich Unterhaltungen und Ideen entwickeln.

Beispiel-Unterhaltungsthread

Im Folgenden finden Sie einen Beispiel-Unterhaltungsthread mit fünf verschiedenen Personen, einschließlich einer Antwort auf eine Antwort.
{
  "data": [
    {
      "conversation_id": "1279944223114900000",
      "in_reply_to_user_id": "1102323333",
      "author_id": "63044444",
      "created_at": "2020-07-06T15:58:10.000Z",
      "id": "1280169177479744444",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1280155225706433333"
        }
      ],
      "text": "@ThirdPerson333 @OriginalPerson000 Antwort auf die dritte Antwort!"
    },
    {
      "conversation_id": "1279944223114900000",
      "in_reply_to_user_id": "3001960000",
      "author_id": "1102323333",
      "created_at": "2020-07-06T15:02:44.000Z",
      "id": "1280155225706433333",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1279944223114900000"
        }
      ],
      "text": "@OriginalPerson000 Dritte Antwort"
    },
    {
      "conversation_id": "1279944223114900000",
      "in_reply_to_user_id": "3001960000",
      "author_id": "199562222",
      "created_at": "2020-07-06T15:02:36.000Z",
      "id": "1280155190306340864",
      "referenced_tweets": [
        {
          "type": "replied_to",
          "id": "1279944223114900000"
        }
      ],
      "text": "@OriginalPerson000 Zweite Antwort"
    }
  ],
  "includes": {
    "users": [
      {
        "name": "Ursprüngliche Person",
        "id": "3001960000",
        "username": "OriginalPerson000"
      },
      {
        "name": "Erste Person",
        "id": "179201111",
        "username": "FirstPerson111"
      }
    ]
  },
  "meta": {
    "newest_id": "1280169177479744444",
    "oldest_id": "1279945722494811111",
    "result_count": 4
  }
}
Abrufen von conversation_id als Parameter in tweet.fields Um die conversation_id für alle auf einem v2-endpoint zurückgegebenen Posts anzufordern, fügen Sie den Anfrageparametern das Feld tweet.fields=conversation_id hinzu. Das Feld conversation_id ist stets die Post-ID des ursprünglichen Posts im Antwort-Thread der Unterhaltung. Alle Posts innerhalb desselben Antwort-Threads, einschließlich solcher, die aus früheren Antwort-Threads hervorgegangen sind, zeigen dieselbe conversation_id an.

Anfrage mit dem Parameter conversation_id

curl --request GET \
  --url 'https://api.x.com/2/tweets?ids=1225917697675886593&tweet.fields=author_id,conversation_id,created_at,in_reply_to_user_id,referenced_tweets&expansions=author_id,in_reply_to_user_id,referenced_tweets.id&user.fields=name,username' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'

Antwort

{
  "data": [
    {
      "id": "1225917697675886593",
      "text": "@TwitterEng *ahem* https://t.co/aroJHt2zQ1",
      "created_at": "2020-02-07T23:02:10.000Z",
      "author_id": "2244994945",
      "in_reply_to_user_id": "6844292",
      "conversation_id": "1225912275971657728",
      "referenced_tweets": [
        {
          "type": "quoted",
          "id": "1200517737669378053"
        },
        {
          "type": "replied_to",
          "id": "1225912275971657728"
        }
      ]
    }
  ],
  "includes": {
    "users": [
      {
        "username": "TwitterDev",
        "name": "Twitter Dev",
        "id": "2244994945"
      },
      {
        "username": "TwitterEng",
        "name": "Twitter Engineering",
        "id": "6844292"
      }
    ],
    "tweets": [
      {
        "id": "1200517737669378053",
        "text": "| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|\n             nicht freitags            \n             auf Prod            \n               pushen                  \n|___________| \n(\\__/)",
        "created_at": "2019-11-29T20:51:47.000Z",
        "author_id": "2244994945",
        "conversation_id": "1200517737669378053"
      }
    ]
  }
}

Verwenden von conversation_id als Filteroperator

Die conversation_id kann als Suchparameter in der jüngsten Suche oder als Operator innerhalb einer Regel für den Filtered stream verwendet werden. Dadurch wird der gesamte Konversationsthread von Posts entweder in Echtzeit über den Filtered stream oder in umgekehrt chronologischer Reihenfolge über search Tweets zurückgegeben. Mit diesem Operator können Sie außerdem die Anzahl der Posts in einer Konversation über Posts counts abrufen.

Anfrage zum Abfragen nach conversation_id

curl --request GET \
  --url 'https://api.x.com/2/tweets/search/recent?query=conversation_id:1279940000004973111&tweet.fields=in_reply_to_user_id,author_id,created_at,conversation_id' \
  --header 'Authorization: Bearer $ACCESS_TOKEN'

Antwort

Hinweis: Ergebnisse für Such-Posts sind in umgekehrter chronologischer Reihenfolge.
{
  "data": [
    {
      "id": "1280169000000704333",
      "text": "@attributeisland @iterationjoe Was für wunderschöne Geschöpfe! Frohe #seaturtleweek",
      "conversation_id": "1279940000004973111",
      "public_metrics": {
        "retweet_count": 0,
        "reply_count": 0,
        "like_count": 7,
        "quote_count": 0
      }
    }
  ],
  "meta": {
    "newest_id": "1280169000000704333",
    "oldest_id": "1279940000004973111",
    "result_count": 5
  }
}
I