Vai al contenuto principale

Introduzione

Un software development kit (SDK) è un insieme di strumenti e programmi software pensati per una specifica piattaforma o API. Lo scopo di un SDK è creare o estendere le funzionalità delle applicazioni fornendo librerie o codebase che gli sviluppatori possono utilizzare all’interno delle loro applicazioni, in modo efficiente e con un minimo di codice. Questo accelera significativamente il processo di sviluppo, risparmiando tempo, denaro e fatica.
La X Developer Platform ora offre 2 SDK ufficiali per chi sviluppa in TypeScript/JavaScript e Java. Questi consentiranno agli sviluppatori di creare in modo più efficace eliminando la necessità di gestire manualmente le complessità della X API v2, grazie a funzioni predefinite per tutti gli endpoint v2 disponibili e a una procedura di autenticazione semplificata. Poiché sono sviluppati e mantenuti dal team della Developer Platform, saranno sempre aggiornati con le future versioni della X API v2.
Poiché questi SDK fanno da wrapper alla X API, devi avere un account sviluppatore per autenticare le richieste utilizzando le credenziali di una App sviluppatore, all’interno di un Project.

Installazione

  • Java
  • TypeScript
Esistono diversi modi per installare il pacchetto Java (richiede Java 1.8+)
  • Utenti Maven: aggiungi questa dipendenza al file POM del tuo progetto:
<dependency>
  <groupId>com.twitter</groupId>
  <artifactId>twitter-api-java-sdk</artifactId>
  <version>1.1.4</version>
</dependency>
  • Utenti Gradle: aggiungi questa dipendenza al file di build del tuo progetto: implementation "com.twitter:twitter-api-java-sdk:1.1.4"
  • Altri: genera prima il JAR eseguendo il seguente comando mvn clean package Quindi installa manualmente i seguenti JAR:
target/twitter-api-java-sdk-1.1.4.jartarget/lib/*.jar

Nozioni di base sul client

Importa le classi (Java) e il package (TypeScript) all’inizio di un file per poter utilizzare l’autenticazione e i client della libreria. Per usare i metodi del client della libreria è necessario fornire le credenziali di autenticazione: possono essere un Bearer Token (solo App) oppure un client id/client secret se ci si autentica con OAuth 2.0 in contesto utente. Ecco alcuni esempi:
  • 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);

Flusso di autenticazione

Se utilizzi l’opzione application-only per autenticare gli SDK, ti basterà fornire il token e il client della libreria sarà subito pronto a usare i metodi degli endpoint. Tieni presente che i token application-only non possono essere usati sugli endpoint che richiedono l’autenticazione con contesto utente. L’autenticazione con contesto utente OAuth 2.0 richiede alcuni passaggi aggiuntivi dopo la creazione del client di autenticazione.
  • Generare l’URL di autorizzazione
  • Autorizzare l’applicazione dall’URL di autorizzazione
  • Reindirizzare alla callback (che deve corrispondere alla callback URL impostata nella pagina delle impostazioni di autenticazione nel developer portal)
  • Analizzare il code verifier per scambiarlo con un access token
Gli SDK forniscono metodi sul client di autenticazione che semplificano questi passaggi. Per un esempio completo su come effettuare una richiesta autenticandosi con il contesto utente OAuth 2.0, consulta i repository su GitHub.

Metodi degli endpoint

I metodi forniti dal client della libreria sono chiaramente denominati per corrispondere a ogni endpoint e tutti i parametri vengono passati come argomenti. Ecco un esempio di ricerca di Post tramite ID:
  • Java
  • TypeScript
String id = "1511757922354663425"; // String | A single Tweet ID.
Set<String> expansions = new HashSet<>(Arrays.asList("author_id")); // Set<String> | A comma separated list of fields to expand.
Set<String> tweetFields = new HashSet<>(Arrays.asList("created_at", "lang", "context_annotations")); // Set<String> | A comma separated list of Tweet fields to display.
Set<String> userFields = new HashSet<>(Arrays.asList("created_at", "description", "name")); // Set<String> | A comma separated list of User fields to display.

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