메인 콘텐츠로 건너뛰기

소개

소프트웨어 개발 키트(SDK)는 특정 플랫폼 또는 API에 맞춘 소프트웨어 도구와 프로그램의 집합입니다. SDK의 목적은 개발자가 애플리케이션에서 바로 활용할 수 있는 라이브러리나 코드베이스를 제공해, 최소한의 코드로 효율적으로 애플리케이션 기능을 구축하거나 확장할 수 있도록 하는 것입니다. 이는 개발 과정을 크게 단축해 시간, 비용, 노력을 절감합니다.
X Developer Platform은 이제 TypeScript/JavaScript와 Java 개발자를 위한 공식 SDK 2종을 제공합니다. 이를 통해 개발자는 X API v2와 관련된 복잡한 구현을 직접 작성할 필요 없이, 제공되는 모든 v2 엔드포인트용 사전 구축 함수와 간소화된 인증 절차를 활용해 보다 효과적으로 개발할 수 있습니다. 이 SDK는 Developer Platform 팀이 직접 제작·유지하므로, X API v2의 향후 릴리스에 맞춰 항상 최신 상태를 유지합니다.
이 SDK는 X API를 래핑하므로, Project 내의 developer App에서 발급된 자격 증명을 사용해 요청을 인증하려면 developer account가 필요합니다.

설치

  • Java
  • TypeScript
Java 패키지는 여러 방법으로 설치할 수 있습니다(Java 1.8+ 필요).
  • Maven 사용자: 프로젝트의 POM 파일에 다음 의존성을 추가하세요:
<dependency>
  <groupId>com.twitter</groupId>
  <artifactId>twitter-api-java-sdk</artifactId>
  <version>1.1.4</version>
</dependency>
  • Gradle 사용자: 프로젝트의 빌드 파일에 다음 의존성을 추가하세요: implementation "com.twitter:twitter-api-java-sdk:1.1.4"
  • 기타: 먼저 다음 명령을 실행하여 JAR을 생성하세요. mvn clean package 그런 다음 다음 JAR을 수동으로 설치하세요:
target/twitter-api-java-sdk-1.1.4.jartarget/lib/*.jar

클라이언트 기본 사항

인증 및 라이브러리 클라이언트를 사용하려면 작업 파일 상단에서 클래스(Java)와 패키지(TypeScript)를 임포트하세요. 라이브러리 클라이언트의 메서드를 사용하려면 인증 자격 증명을 전달해야 하며, 이는 앱 전용의 베어러 토큰 또는 OAuth 2.0 사용자 컨텍스트로 인증하는 경우 client id/client secret 중 하나입니다. 다음은 예시입니다:
  • 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);

인증 플로우

SDK를 애플리케이션 전용 옵션으로 인증하는 경우 토큰만 제공하면 라이브러리 클라이언트가 즉시 엔드포인트 메서드를 사용할 수 있습니다. 단, 애플리케이션 전용 토큰은 사용자 컨텍스트 인증이 필요한 엔드포인트에서는 사용할 수 없습니다. OAuth 2.0 사용자 컨텍스트 인증은 인증 클라이언트를 생성한 뒤 몇 가지 추가 단계가 필요합니다.
  • 인가 URL 생성
  • 인가 URL에서 애플리케이션 인가
  • 콜백으로 리디렉션(개발자 포털의 인증 설정 페이지에 지정한 콜백 URL과 일치해야 함)
  • 액세스 토큰 교환을 위한 코드 베리파이어 파싱
SDK는 인증 클라이언트에 위 단계를 간소화하는 메서드를 제공합니다. OAuth 2.0 사용자 컨텍스트로 인증하여 요청하는 전체 예시는 GitHub 리포지토리를 참고하세요.

엔드포인트 메서드

라이브러리 클라이언트에서 제공되는 메서드는 각 엔드포인트에 대응하도록 명확하게 이름이 지정되어 있으며, 모든 매개변수는 인수로 전달됩니다. 다음은 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();
}