メインコンテンツへスキップ

はじめに

ソフトウェア開発キット(SDK)は、特定のプラットフォームやAPI向けに用意されたソフトウェアツールやプログラムのセットです。SDKは、開発者がアプリケーション内で利用できるライブラリやコードベースを提供し、最小限のコーディングで効率的にアプリケーションの機能を構築・拡張できるようにすることを目的としています。これにより、開発プロセスが大幅に加速し、時間・コスト・労力を節約できます。
X Developer Platform では現在、TypeScript/JavaScript と Java 向けに公式SDKを2つ提供しています。これにより、X API v2 にまつわる複雑な実装を手作業で行う必要がなくなり、利用可能なすべての v2 エンドポイント向けに用意された関数を活用しつつ、認証も簡素化して、より効率的に開発できます。これらは 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)をインポートして、認証とライブラリクライアントにアクセスできるようにします。ライブラリクライアントのメソッドを使用するには、認証情報を渡す必要があります。これは、Bearer Token(アプリのみ)か、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 と一致している必要があります)
  • アクセストークンと交換するために code verifier を解析
SDK は認証クライアント上に、これらの手順を簡略化するメソッドを提供しています。OAuth 2.0 のユーザーコンテキストで認証してリクエストを行う完全な例は、GitHub リポジトリを参照してください。

エンドポイントメソッド

ライブラリクライアントで提供される各メソッドは、それぞれのエンドポイントに対応するように明確に命名されており、すべてのパラメータは引数として渡されます。 以下は、ID で Post をルックアップする例です。
  • Java
  • TypeScript
String id = "1511757922354663425"; // String | 単一の Tweet ID。
Set<String> expansions = new HashSet<>(Arrays.asList("author_id")); // Set<String> | 展開する fields をカンマ区切りで指定するリスト。
Set<String> tweetFields = new HashSet<>(Arrays.asList("created_at", "lang", "context_annotations")); // Set<String> | 表示する Tweet fields をカンマ区切りで指定するリスト。
Set<String> userFields = new HashSet<>(Arrays.asList("created_at", "description", "name")); // Set<String> | 表示する User fields をカンマ区切りで指定するリスト。

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();
}