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 proporcionando bibliotecas o bases de código que los desarrolladores puedan usar dentro de sus aplicaciones de forma 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 forma más eficaz al eliminar la necesidad de programar manualmente las complejidades en torno a la X API v2, utilizando las funciones predefinidas para todos los endpoints disponibles de v2, además de simplificar el proceso de Autenticación. Al ser creados y mantenidos por el equipo de Developer Platform, siempre estarán actualizados con las futuras versiones de la X API v2.
Dado que estos SDK encapsulan la X API, debes tener una cuenta de desarrollador para autenticar solicitudes usando las credenciales de una App de desarrollador, ubicada dentro de un Proyecto.

Instalación

  • Java
  • TypeScript
Hay varias formas de instalar el paquete de Java (requiere Java 1.8+)
  • Usuarios de Maven: añade 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: añade 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

Importa las clases (Java) y el paquete (TypeScript) al inicio de un archivo de trabajo para acceder a los clientes de Autenticación y de la biblioteca. Para usar los métodos del cliente de la biblioteca, debes pasar credenciales de autenticación; esto puede ser un Bearer Token (solo App) o client id/client secret si te autenticas con OAuth 2.0 en contexto de usuario. Aquí tienes 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 usa la opción de solo aplicación para autenticar los SDK, solo necesitará proporcionar el token y el cliente de la biblioteca estará listo para usar los métodos del endpoint de inmediato. Tenga en cuenta que los tokens de solo aplicación 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 (este debe coincidir con la URL de callback configurada en la página de configuración de autenticación del Portal de desarrolladores).
  • Analizar el verificador de código para intercambiarlo por un token de acceso
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ándose con el contexto de usuario de OAuth 2.0, consulte los repositorios de GitHub.

Métodos de endpoints

Los métodos disponibles en 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();
}