Zum Hauptinhalt springen

Einführung

Ein Software Development Kit (SDK) ist eine Sammlung von Softwaretools und Programmen, die für eine bestimmte Plattform oder API maßgeschneidert sind. Ein SDK dient dazu, die Funktionalität von Anwendungen zu entwickeln oder zu erweitern, indem es Bibliotheken oder Codebasen bereitstellt, die Entwickler innerhalb ihrer Anwendungen effizient und mit minimalem Programmieraufwand nutzen können. Das beschleunigt den Entwicklungsprozess erheblich und spart Zeit, Geld und Aufwand.
Die X Developer Platform bietet jetzt 2 offizielle SDKs für alle, die in TypeScript/JavaScript und Java entwickeln. Diese ermöglichen es Entwicklern, effizienter zu arbeiten, da die manuelle Implementierung der Komplexität rund um die X API v2 entfällt. Stattdessen können vorgefertigte Funktionen für alle verfügbaren v2 endpoints genutzt und der Authentifizierungsprozess vereinfacht werden. Da diese SDKs vom Developer Platform-Team erstellt und gepflegt werden, sind sie stets mit zukünftigen Releases der X API v2 auf dem neuesten Stand.
Da diese SDKs die X API kapseln, benötigen Sie ein Developer-Konto, um Anfragen mit den Zugangsdaten aus einer Developer-App zu authentifizieren, die sich innerhalb eines Project befindet.

Installation

  • Java
  • TypeScript
Es gibt mehrere Möglichkeiten, das Java-Paket zu installieren (erfordert Java 1.8+)
  • Maven-Nutzer – fügen Sie diese Abhängigkeit zur POM-Datei Ihres Projects hinzu:
<dependency>
  <groupId>com.twitter</groupId>
  <artifactId>twitter-api-java-sdk</artifactId>
  <version>1.1.4</version>
</dependency>
  • Gradle-Nutzer – fügen Sie diese Abhängigkeit zur Build-Datei Ihres Projects hinzu: implementation "com.twitter:twitter-api-java-sdk:1.1.4"
  • Andere – erzeugen Sie zunächst das JAR, indem Sie den folgenden Befehl ausführen: mvn clean package Installieren Sie anschließend die folgenden JARs manuell:
target/twitter-api-java-sdk-1.1.4.jartarget/lib/*.jar

Grundlagen des Clients

Importieren Sie die Klassen (Java) und das Paket (TypeScript) am Anfang einer Arbeitsdatei, um Zugriff auf die Authentifizierung und die Bibliotheksclients zu erhalten. Um die Methoden des Bibliotheksclients zu verwenden, müssen Anmeldedaten übergeben werden. Dies kann entweder ein Bearer Token (App-only) sein oder eine client id/client secret‑Kombination, wenn Sie mit OAuth 2.0 im Benutzerkontext authentifizieren. So sieht das in der Praxis aus:
  • Java
  • TypeScript
// Import classes:
import com.twitter.clientlib.ApiClient;
import com.twitter.clientlib.ApiException;
import com.twitter.clientlib.Configuration;
import com.twitter.clientlib.auth.*;
import com.twitter.clientlib.model.*;
import com.twitter.clientlib.TwitterCredentialsBearer;
import com.twitter.clientlib.api.TwitterApi;

// Instantiate library client
TwitterApi apiInstance = new TwitterApi();

// Instantiate auth credentials (App-only example)
TwitterCredentialsBearer credentials = new TwitterCredentialsBearer(System.getenv("APP-ONLY-ACCESS-TOKEN"));

// Pass credentials to library client
apiInstance.setTwitterCredentials(credentials);

Authentifizierungsablauf

Wenn Sie zur Authentifizierung der SDKs die Option „nur Anwendung“ verwenden, müssen Sie lediglich das Token bereitstellen; der Bibliotheks-Client kann die endpoint-Methoden dann sofort nutzen. Beachten Sie, dass Tokens für „nur Anwendung“ nicht mit endpoints verwendet werden können, die eine Authentifizierung im Benutzerkontext erfordern. Die OAuth 2.0-Authentifizierung im Benutzerkontext erfordert nach dem Erstellen des Auth-Clients einige zusätzliche Schritte.
  • Autorisierungs-URL generieren
  • Die Anwendung über die Autorisierungs-URL autorisieren
  • Weiterleitung zum Callback (dies muss mit der Callback-URL übereinstimmen, die auf der Seite mit den Authentifizierungseinstellungen im Entwicklerportal festgelegt ist)
  • Code Verifier parsen, um ihn gegen ein access token auszutauschen
Die SDKs stellen am Auth-Client Methoden bereit, die diese Schritte vereinfachen. Ein vollständiges Beispiel, wie eine Anfrage mit OAuth 2.0 im Benutzerkontext authentifiziert wird, finden Sie in den GitHub-Repositories.

Endpoint-Methoden

Die im Bibliotheks‑Client bereitgestellten Methoden sind eindeutig benannt und entsprechen jeweils einem endpoint; alle Parameter werden als Argumente übergeben. Hier ein Beispiel für die Post-Abfrage nach ID:
  • Java
  • TypeScript
String id = "1511757922354663425"; // String | Eine einzelne Tweet-ID.
Set<String> expansions = new HashSet<>(Arrays.asList("author_id")); // Set<String> | Eine durch Kommas getrennte Liste von fields, die erweitert werden sollen.
Set<String> tweetFields = new HashSet<>(Arrays.asList("created_at", "lang", "context_annotations")); // Set<String> | Eine durch Kommas getrennte Liste von Tweet fields, die angezeigt werden sollen.
Set<String> userFields = new HashSet<>(Arrays.asList("created_at", "description", "name")); // Set<String> | Eine durch Kommas getrennte Liste von User fields, die angezeigt werden sollen.

try {
 SingleTweetLookupResponse result = apiInstance.tweets().findTweetById(id, expansions, tweetFields, userFields, null, null, null);
 System.out.println(result);
} catch (ApiException e) {
 System.err.println("Exception when calling TweetsApi#findTweetById");
 System.err.println("Status code: " + e.getCode());
 System.err.println("Reason: " + e.getResponseBody());
 System.err.println("Response headers: " + e.getResponseHeaders());
 e.printStackTrace();
}

I