Zum Hauptinhalt springen

Erste Schritte mit den Filtered stream-Endpunkten

Dieser Schnellstart führt Sie durch Ihre erste Anfrage an die Endpunktgruppe für den Filtered stream mithilfe einer cURL-Anfrage. cURL ist ein Kommandozeilen-Tool, mit dem Sie Anfragen mit minimaler Konfiguration stellen können. Wenn Sie Beispielcode in verschiedenen Sprachen sehen möchten, besuchen Sie bitte unser GitHub-Repository mit dem X API v2 sample code.
VoraussetzungenUm diese Anleitung abzuschließen, benötigen Sie einen Satz von Keys und Tokens, um Ihre Anfrage zu authentifizieren. Sie können diese Keys und Tokens generieren, indem Sie die folgenden Schritte ausführen:
  • Registrieren Sie ein Developer-Konto und lassen Sie es freischalten.
  • Erstellen Sie ein Project und eine zugehörige Developer-App im Entwicklerportal.
  • Navigieren Sie zur „Keys and tokens“-Seite Ihrer App, um die erforderlichen Zugangsdaten zu generieren. Speichern Sie alle Zugangsdaten an einem sicheren Ort.

Schritte zum Erstellen einer Filtered-stream-Anfrage mit cURL

Schritt eins: Regel erstellen Regeln bestehen aus einem oder mehreren verschiedenen Operators, die mithilfe boolescher Logik und Klammern kombiniert werden, um festzulegen, welche Posts an Ihren Stream geliefert werden. In diesem Leitfaden filtern wir den Stream, um Posts zu finden, die sowohl das Schlüsselwort „cat“ als auch Bilder enthalten. Hier ist unsere Regel:
has:images
Schritt zwei: Fügen Sie Ihrer Regel ein Tag hinzu Sie können mehrere gleichzeitige Regeln zu Ihrem Stream hinzufügen. Wenn Sie Ihre Streaming-Verbindung öffnen, werden Posts, die einer dieser Regeln entsprechen, über dieselbe Streaming-Verbindung übertragen. Damit Sie erkennen, welcher Post zu welcher Regel gehört, können Sie Ihrer Anfrage zur Regelerstellung ein Tag hinzufügen. Jeder Post, der dieser Regel entspricht, enthält dann ein Tag-Feld innerhalb der Post-Payload, das angibt, zu welcher Regel er gehört. Für diese Regel weisen wir das folgende Tag zu:
with images
Schritt drei: Fügen Sie Ihre Regel dem Stream hinzu Dieses endpoint verlangt, dass Sie mit dieser Anfrage einen application/JSON-Body übermitteln, der Ihre Regel und deren Tag enthält. Sie werden auch sehen, dass wir den Regelwert und das Tag in einem add-Objekt eingeschlossen haben, da wir diese Regel dem Stream hinzufügen möchten. Dieser JSON-Body sieht folgendermaßen aus:
{
  "add": [
    {
      "value": "cat has:images",
      "tag": "Katzen mit Bildern"
    }
  ]
}
Nachdem Sie diesen JSON-Body vollständig eingerichtet haben, können Sie ihn einer cURL-Anfrage hinzufügen, die folgendermaßen aussieht. Diese Anfrage ist noch nicht einsatzbereit; senden Sie sie daher bitte erst in einem späteren Schritt ab.
curl -X POST 'https://api.x.com/2/tweets/search/stream/rules' \
-H "Content-type: application/json" \
-H "Authorization: Bearer $APP_ACCESS_TOKEN" -d \
'{
  "add": [
    {"value": "cat has:images", "tag": "Katzen mit Bildern"}
  ]
}'`
Schritt vier: Authentifizieren Sie Ihre Anfrage Da die Filtered stream rules endpoints eine OAuth 2.0 App-Only authentication erfordern, müssen Sie im cURL-Befehl aus Schritt drei $APP_ACCESS_TOKEN durch den App Access Token ersetzen, den Sie in den Voraussetzungen erzeugt haben.  Schritt fünf: Fügen Sie Ihre Regel zum Stream hinzu Führen Sie anschließend Ihren cURL-Befehl aus, um die Regel zu Ihrem Stream hinzuzufügen. Kopieren Sie den cURL-Befehl, fügen Sie ihn in Ihre Befehlszeile ein und drücken Sie die Eingabetaste.  Wenn Ihr cURL-Aufruf erfolgreich war, erhalten Sie eine Antwort mit data zu Ihrem value, tag und der id (sie dient als eindeutiger Bezeichner Ihrer Regel). Diese Antwort sieht in etwa so aus:
{
  "data": [
    {
      "value": "cat has:images",
      "tag": "Katzen mit Bildern",
      "id": "1273026480692322304"
    }
  ],
  "meta": {
    "sent": "2020-06-16T22:55:39.356Z",
    "summary": {
      "created": 1,
      "not_created": 0,
      "valid": 1,
      "invalid": 0
    }
  }
}
Sie können überprüfen, ob Ihre Regel erfolgreich hinzugefügt wurde, indem Sie die folgende GET-Anfrage an das rules-endpoint senden und dabei erneut darauf achten, $APP_ACCESS_TOKEN durch Ihr Token zu ersetzen. Diese Anfrage gibt eine vollständige Liste aller Regeln zurück, die zu Ihrem Stream hinzugefügt wurden.
curl -X GET 'https://api.x.com/2/tweets/search/stream/rules' \
-H "Authorization: Bearer $APP_ACCESS_TOKEN"
Wenn Ihre cURL-Anfrage erfolgreich war, erhalten Sie Folgendes:
{
	"data": [{
		"id": "1273028376882589696",
		"value": "cat has:images",
		"tag": "Katzen mit Bildern"
	}],
	"meta": {
		"sent": "2020-06-16T23:14:06.498Z"
	}
}
Schritt sechs: Bestimmen und angeben, welche fields Sie abrufen möchten Wenn Sie sich nach Schritt fünf mit dem Stream verbinden, erhalten Sie in Ihrer Antwort die Standard-fields des Post-Objekts: id, text und edit_history_tweet_ids. Wenn Sie darüber hinaus zusätzliche fields erhalten möchten, müssen Sie diese fields in Ihrer Anfrage mit den Parametern fields und/oder expansions angeben. Für diese Übung fordern wir drei verschiedene Sätze von fields aus unterschiedlichen Objekten an:
  1. Das zusätzliche tweet.created_at-field in den primären Post-Objekten.
  2. Die zugehörigen Standardfields des User-Objekts der Autoren für die zurückgegebenen Posts: id, name und username
  3. Das zusätzliche user.created_at-field in den zugehörigen User-Objekten.  
Um diese fields anzufordern, müssen Sie Folgendes in Ihrer Anfrage übergeben:
KeyValueReturned fields
tweet.fieldscreated_attweets.created_at
expansionsauthor_idincludes.users.id, includes.users.name, includes.users.username
user.fieldscreated_atincludes.users.created_at
Jetzt, da Sie dies wissen, können Sie Ihre Request-URL zusammensetzen, um sich mit dem Stream zu verbinden. Diese wird folgendermaßen aussehen:
https://api.x.com/2/tweets/search/stream?tweet.fields=created_at&expansions=author_id&user.fields=created_at
Schritt sieben: Mit dem Stream verbinden und die Antwort prüfen Da Ihre Regel nun eingerichtet ist und Sie angegeben haben, welche fields zurückgegeben werden sollen, können Sie eine Verbindung mit dem Stream herstellen, der Post-Objekte liefert, die der von Ihnen übermittelten Regel entsprechen. So sieht der cURL-Befehl aus, nachdem Sie die URL aus Schritt sechs in Ihre Anfrage eingefügt haben:
curl -X GET -H "Authorization: Bearer $APP_ACCESS_TOKEN" "https://api.x.com/2/tweets/search/stream?tweet.fields=created_at&expansions=author_id&user.fields=created_at"
Auch diese Anfrage muss mit OAuth 2.0 App-Only authentifiziert werden. Ersetzen Sie daher $APP_ACCESS_TOKEN durch Ihre Zugangsdaten, bevor Sie den Befehl in Ihr Befehlszeilentool kopieren und einfügen. Sobald Sie mit dem Filtered stream verbunden sind, erhalten Sie Posts, die Ihren Regeln entsprechen, im folgenden JSON-Format:
{
  "data": [
    {
      "author_id": "2244994945",
      "created_at": "2022-09-14T19:00:55.000Z",
      "id": "1228393702244134912",
      "edit_history_tweet_ids": ["1228393702244134912"],
      "text": "Was hat der Entwickler in seine Valentinstagskarte geschrieben?\n  \nwhile(true) {\n    I = Love(You);  \n}"
    },
    {
      "author_id": "2244994945",
      "created_at": "2022-09-12T17:09:56.000Z",
      "id": "1227640996038684673",
       "edit_history_tweet_ids": ["1227640996038684673"],
      "text": "Ärzte: Online nach Sachen zu googeln macht einen nicht zum Arzt\n\nEntwickler: https://t.co/mrju5ypPkb"
    },
    {
      "author_id": "2244994945",
      "created_at": "2022-09-27T20:26:41.000Z",
      "id": "1199786642791452673",
      "edit_history_tweet_ids": ["1199786642791452673"],
      "text": "C#"
    }
  ],
  "includes": {
    "users": [
      {
        "created_at": "2013-12-14T04:35:55.000Z",
        "id": "2244994945",
        "name": "Twitter Dev",
        "username": "TwitterDev"
      }
    ]
  }
}
Wenn Sie Ihre Verbindung schließen möchten, können Sie in Ihrem Befehlszeilentool unter macOS oder Windows mit Strg+C die Verbindung beenden oder alternativ das Fenster schließen.
I