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

はじめに

ソフトウェア開発キット(SDK)は、特定のプラットフォームやAPI向けに用意されたソフトウェアツールやプログラムの集合です。SDKは、開発者がアプリケーション内で利用できるライブラリやコードベースを提供し、最小限のコーディングで効率的にアプリケーションの機能を構築・拡張できるようにすることを目的としています。これにより開発プロセスが大幅に加速し、時間・コスト・労力を節約できます。
X Developer Platformは、TypeScript/JavaScriptおよびJava向けに2つの公式SDKを提供しています。これにより、利用可能なすべてのv2 endpointに対する事前構築済みの関数を活用し、認証プロセスも簡素化することで、X API 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(App のみ)または 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 をアプリケーション専用オプションで認証する場合は、トークンを指定するだけでライブラリ クライアントがすぐに endpoint メソッドを利用できるようになります。なお、アプリケーション専用トークンはユーザー context の認証が必要な endpoint では使用できません。 OAuth 2.0 のユーザー context 認証では、auth クライアントを作成した後にいくつかの追加手順が必要です。
  • 認可 URL の生成
  • 認可 URL からアプリケーションを認可
  • コールバックにリダイレクト(Developer Portal の auth 設定ページで設定した callback URL と一致している必要があります)
  • code verifier を解析して access token に交換
SDK は、これらの手順を簡略化する auth クライアントのメソッドを提供しています。OAuth 2.0 のユーザー context で認証してリクエストを行う完全な例は、GitHub リポジトリを参照してください。

エンドポイントのメソッド

ライブラリクライアントで提供されるメソッドは、各endpointに対応するよう明確に命名されており、すべてのパラメータは引数として渡されます。 以下は、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();
}

I