Saltar al contenido principal

Introducción

Un kit de desarrollo de software (SDK) es un conjunto de herramientas y programas de software diseñados para una plataforma o API específica. El propósito de un SDK es crear o ampliar la funcionalidad de las aplicaciones al proporcionar bibliotecas o bases de código que los desarrolladores pueden utilizar dentro de sus aplicaciones, de manera eficiente y con una codificación mínima. Esto acelera significativamente el proceso de desarrollo, ahorrando tiempo, dinero y esfuerzo.
La X Developer Platform ahora ofrece 2 SDK oficiales para quienes desarrollan en TypeScript/JavaScript y Java. Estos permitirán a los desarrolladores crear de manera más eficaz al eliminar la necesidad de programar manualmente las complejidades de la X API v2, aprovechando las funciones precompiladas para todos los endpoints disponibles en v2 y simplificando el proceso de autenticación. Como estos SDK son creados y mantenidos por el equipo de la Developer Platform, siempre estarán actualizados con los futuros lanzamientos de la X API v2.
Dado que estos SDK envuelven la X API, debe contar con una cuenta de desarrollador para autenticar las solicitudes utilizando las credenciales de una App de desarrollador, ubicada dentro de un Project.

Instalación

  • Java
  • TypeScript
Hay varias maneras de instalar el paquete de Java (requiere Java 1.8+)
  • Usuarios de Maven: agrega esta dependencia al archivo POM de tu proyecto:
<dependency>
  <groupId>com.twitter</groupId>
  <artifactId>twitter-api-java-sdk</artifactId>
  <version>1.1.4</version>
</dependency>
  • Usuarios de Gradle: agrega esta dependencia al archivo de compilación de tu proyecto: implementation "com.twitter:twitter-api-java-sdk:1.1.4"
  • Otros: primero genera el JAR ejecutando el siguiente comando mvn clean package Luego instala manualmente los siguientes JAR:
target/twitter-api-java-sdk-1.1.4.jartarget/lib/*.jar

Conceptos básicos del cliente

Importe las clases (Java) y el paquete (TypeScript) al comienzo de un archivo de trabajo para acceder a la autenticación y a los clientes de la biblioteca. Para usar los métodos del cliente de la biblioteca, debe pasar las credenciales de autenticación; pueden ser un Bearer Token (solo App) o un client id/client secret si se autentica con OAuth 2.0 en contexto de usuario. A continuación se muestran ejemplos de cómo se vería:
  • 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);

Flujo de autenticación

Si usas la opción de aplicación únicamente para autenticar los SDK, solo necesitas proporcionar el token y el cliente de la biblioteca estará listo para usar los métodos del endpoint de inmediato. Ten en cuenta que los tokens de aplicación únicamente no se pueden usar en endpoints que requieren autenticación con contexto de usuario. La autenticación con contexto de usuario de OAuth 2.0 requiere algunos pasos adicionales después de crear el cliente de autenticación.
  • Generar la URL de autorización
  • Autorizar la aplicación desde la URL de autorización
  • Redirigir al callback (esto debe coincidir con la URL de callback configurada en la página de ajustes de autenticación en el portal de desarrolladores).
  • Analizar el code verifier para intercambiarlo por un access token
Los SDK proporcionan métodos en el cliente de autenticación que simplifican estos pasos. Para ver un ejemplo completo de cómo realizar una solicitud autenticándote con contexto de usuario de OAuth 2.0, consulta los repositorios de GitHub.

Métodos de endpoint

Los métodos que proporciona el cliente de la biblioteca están claramente nombrados para corresponder a cada endpoint y todos los parámetros se pasan como argumentos. Aquí tienes un ejemplo de búsqueda de Post por 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