> ## Documentation Index
> Fetch the complete documentation index at: https://generaltranslation.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Client

X API 向けのメイン Client クラス

これは X API とやり取りするための主なエントリポイントです。専用のクライアントモジュールを通じてすべての API エンドポイントへアクセスする手段を提供し、認証、リクエスト設定、エラーハンドリングを担います。

**`Example`**

```typescript theme={null}
import { Client } from '@xdevplatform/xdk';

const client = new Client({
  bearerToken: 'your-bearer-token'
});

// ユーザー情報を取得する
const user = await client.users.getUser('783214');

// ページネーションを使用してフォロワーを取得する
const followers = await client.users.getFollowers('783214', {
  maxResults: 10,
  userFields: ['id', 'name', 'username']
});

// フォロワーを反復処理する
for await (const follower of followers) {
  console.log(follower.username);
}
```

<div id="constructors">
  ## コンストラクタ
</div>

<div id="constructor">
  ### constructor
</div>

• **new Client**(`config`): [`Client`](/ja/xdks/typescript/reference/classes/Client)

新しい X API クライアント インスタンスを作成します。

<div id="parameters">
  #### パラメーター
</div>

| 名前       | type  | 説明               |
| :------- | :---- | :--------------- |
| `config` | `any` | Client 用の設定オプション |

<div id="returns">
  #### 戻り値
</div>

[`Client`](/ja/xdks/typescript/reference/classes/Client)

**`使用例`**

```typescript theme={null}
// ベアラートークン認証
const client = new Client({
  bearerToken: 'your-bearer-token'
});

// OAuth2 認証
const client = new Client({
  accessToken: 'your-access-token'
});

// OAuth1 認証
const client = new Client({
  oauth1: oauth1Instance
});
```

[client.ts:401](https://github.com/xdevplatform/xdk-typescript/blob/81aacb165e0802e188f608bdf462b60fc4e713a2/src/client.ts#L401)

<div id="properties">
  ## プロパティ
</div>

<ResponseField name="baseUrl" type="string" required>
  API リクエスト用のベース URL
</ResponseField>

<ResponseField name="bearerToken" type="string">
  認証に使用するベアラートークン
</ResponseField>

<ResponseField name="accessToken" type="string">
  OAuth2 アクセストークン
</ResponseField>

<ResponseField name="oauth1" type="any">
  認証に使用する OAuth1 インスタンス
</ResponseField>

<ResponseField name="headers" type="Headers" required>
  リクエスト用ヘッダー
</ResponseField>

<ResponseField name="timeout" type="number" required>
  ミリ秒単位のリクエストタイムアウト
</ResponseField>

<ResponseField name="retry" type="boolean" required>
  失敗したリクエストを自動で再試行するかどうか
</ResponseField>

<ResponseField name="maxRetries" type="number" required>
  再試行回数の上限
</ResponseField>

<ResponseField name="httpClient" type="HttpClient = httpClient" required>
  リクエストの送信に使用する HTTP クライアント
</ResponseField>

<ResponseField name="general" type="GeneralClient" required>
  general クライアント
</ResponseField>

<ResponseField name="accountActivity" type="AccountActivityClient" required>
  account activity クライアント
</ResponseField>

<ResponseField name="communityNotes" type="CommunityNotesClient" required>
  community notes クライアント
</ResponseField>

<ResponseField name="compliance" type="ComplianceClient" required>
  compliance クライアント
</ResponseField>

<ResponseField name="connections" type="ConnectionsClient" required>
  connections クライアント
</ResponseField>

<ResponseField name="users" type="UsersClient" required>
  users クライアント
</ResponseField>

<ResponseField name="news" type="NewsClient" required>
  news クライアント
</ResponseField>

<ResponseField name="spaces" type="SpacesClient" required>
  spaces クライアント
</ResponseField>

<ResponseField name="activity" type="ActivityClient" required>
  activity クライアント
</ResponseField>

<ResponseField name="usage" type="UsageClient" required>
  usage クライアント
</ResponseField>

<ResponseField name="trends" type="TrendsClient" required>
  trends クライアント
</ResponseField>

<ResponseField name="posts" type="PostsClient" required>
  posts クライアント
</ResponseField>

<ResponseField name="directMessages" type="DirectMessagesClient" required>
  direct messages クライアント
</ResponseField>

<ResponseField name="communities" type="CommunitiesClient" required>
  communities クライアント
</ResponseField>

<ResponseField name="media" type="MediaClient" required>
  media クライアント
</ResponseField>

<ResponseField name="webhooks" type="WebhooksClient" required>
  webhooks クライアント
</ResponseField>

<ResponseField name="stream" type="StreamClient" required>
  stream クライアント
</ResponseField>

<ResponseField name="lists" type="ListsClient" required>
  lists クライアント
</ResponseField>

<ResponseField name="request" type="Promise<T>" required>
  X API への認証済みリクエストを実行します

  このメソッドは、すべての API リクエストについて、認証、リクエストのフォーマット、
  およびエラー処理を行います。クライアント設定に基づいて、適切な認証ヘッダーを自動的に追加します。
</ResponseField>

<ResponseField name="isTokenExpired" type="boolean" required>
  OAuth2 トークンが有効期限切れかどうかを確認します
</ResponseField>

<ResponseField name="refreshToken" type="Promise<void>" required>
  OAuth2 トークンをリフレッシュします
</ResponseField>

<ResponseField name="isAuthenticated" type="boolean" required>
  現在の認証状態を取得します
</ResponseField>

<ResponseField name="mapSecuritySchemeToAuthTypes" type="string[]" required>
  OpenAPI のセキュリティスキーム名を内部の認証タイプにマッピングします
</ResponseField>

<ResponseField name="validateAuthentication" type="void" required>
  必要な認証方式が利用可能であることを検証します
</ResponseField>

<ResponseField name="getAvailableAuthTypes" type="string[]" required>
  利用可能な認証タイプを取得します
</ResponseField>
