Pular para o conteúdo principal

Introdução

Um kit de desenvolvimento de software (SDK) é um conjunto de ferramentas e programas de software voltado para uma plataforma ou API específica. O objetivo de um SDK é criar ou ampliar funcionalidades de aplicações, fornecendo bibliotecas ou bases de código que os desenvolvedores possam usar em suas aplicações, de forma eficiente e com o mínimo de codificação. Isso acelera significativamente o processo de desenvolvimento, economizando tempo, dinheiro e esforço.
A X Developer Platform agora oferece 2 SDKs oficiais para quem desenvolve em TypeScript/JavaScript e Java. Eles permitem que os desenvolvedores criem com mais eficiência, eliminando a necessidade de programar manualmente as complexidades da X API v2, utilizando funções prontas para todos os endpoints v2 disponíveis e simplificando o processo de autenticação. Como são desenvolvidos e mantidos pela equipe da Developer Platform, estarão sempre atualizados com os futuros lançamentos da X API v2.
Como esses SDKs encapsulam a X API, você deve ter uma conta de desenvolvedor para autenticar solicitações usando as credenciais de um App de desenvolvedor, localizado dentro de um Projeto.

Instalação

  • Java
  • TypeScript
Há algumas maneiras de instalar o pacote Java (requer Java 1.8+)
  • Usuários do Maven — adicione esta dependência ao arquivo POM do seu projeto:
<dependency>
  <groupId>com.twitter</groupId>
  <artifactId>twitter-api-java-sdk</artifactId>
  <version>1.1.4</version>
</dependency>
  • Usuários do Gradle — adicione esta dependência ao arquivo de build do seu projeto: implementation "com.twitter:twitter-api-java-sdk:1.1.4"
  • Outros — primeiro gere o JAR executando o seguinte comando: mvn clean package Em seguida, instale manualmente os seguintes JARs:
target/twitter-api-java-sdk-1.1.4.jartarget/lib/*.jar

Noções básicas do cliente

Importe as classes (Java) e o pacote (TypeScript) no início de um arquivo para acessar os clientes de autenticação e da biblioteca. Para usar os métodos do cliente da biblioteca, é preciso fornecer credenciais de autenticação; isso pode ser um Bearer Token (somente App) ou client id/client secret ao autenticar com contexto de usuário do OAuth 2.0. Veja a seguir exemplos de como isso fica:
  • 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);

Fluxo de autenticação

Se você estiver usando a opção “somente aplicação” para autenticar os SDKs, só precisará fornecer o token e o cliente da biblioteca estará pronto para usar os métodos dos endpoints imediatamente. Lembre-se de que tokens de “somente aplicação” não podem ser usados em endpoints que exigem autenticação com contexto de usuário. A autenticação com contexto de usuário via OAuth 2.0 requer algumas etapas adicionais após criar o cliente de autenticação.
  • Gerar a URL de autorização
  • Autorizar a aplicação a partir da URL de autorização
  • Redirecionar para o callback (deve corresponder à URL de callback definida na página de configurações de autenticação no portal do desenvolvedor)
  • Processar o code verifier para trocá-lo por um access token
Os SDKs fornecem métodos no cliente de autenticação que simplificam essas etapas. Para um exemplo completo de como fazer uma solicitação autenticada com contexto de usuário do OAuth 2.0, confira os repositórios no GitHub.

Métodos de endpoint

Os métodos disponibilizados no cliente da biblioteca são claramente nomeados para corresponder a cada endpoint, e todos os parâmetros são passados como argumentos. Veja um exemplo de consulta 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