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

# Client

> X API TypeScript SDK의 메인 Client 클래스에 대한 레퍼런스. 모든 X API v2 엔드포인트 그룹에 대한 전용 클라이언트를 노출하는 진입점입니다.

X API의 메인 클라이언트 클래스

X API와 상호 작용하기 위한 기본 진입점입니다. 특수 클라이언트 모듈을 통해
모든 API 엔드포인트에 대한 액세스를 제공하며, 인증, 요청 구성 및
오류 처리를 담당합니다.

**`예시`**

```typescript title="Example" lines wrap icon="square-js" theme={null}
import { Client } from '@xdevplatform/xdk';

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

// Get user information
const user = await client.users.getUser('783214');

// Get followers with pagination
const followers = await client.users.getFollowers('783214', {
  maxResults: 10,
  userFields: ['id', 'name', 'username']
});

// Iterate through followers
for await (const follower of followers) {
  console.log(follower.username);
}
```

## 생성자

### constructor

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

새 X API 클라이언트 인스턴스를 생성합니다

#### 매개변수

| 이름       | 타입    | 설명              |
| :------- | :---- | :-------------- |
| `config` | `any` | 클라이언트에 대한 구성 옵션 |

#### 반환값

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

**`예시`**

```typescript title="Example" lines wrap icon="square-js" theme={null}
// Bearer token authentication
const client = new Client({
  bearerToken: 'your-bearer-token'
});

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

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

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

## 속성

<ResponseField name="baseUrl" type="string" required>
  API 요청의 기본 URL
</ResponseField>

<ResponseField name="bearerToken" type="string">
  인증용 Bearer Token
</ResponseField>

<ResponseField name="accessToken" type="string">
  OAuth 2.0 액세스 토큰
</ResponseField>

<ResponseField name="oauth1" type="any">
  인증용 OAuth 1.0a 인스턴스
</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 client
</ResponseField>

<ResponseField name="accountActivity" type="AccountActivityClient" required>
  account activity client
</ResponseField>

<ResponseField name="communityNotes" type="CommunityNotesClient" required>
  community notes client
</ResponseField>

<ResponseField name="compliance" type="ComplianceClient" required>
  compliance client
</ResponseField>

<ResponseField name="connections" type="ConnectionsClient" required>
  connections client
</ResponseField>

<ResponseField name="users" type="UsersClient" required>
  users client
</ResponseField>

<ResponseField name="news" type="NewsClient" required>
  news client
</ResponseField>

<ResponseField name="spaces" type="SpacesClient" required>
  spaces client
</ResponseField>

<ResponseField name="activity" type="ActivityClient" required>
  activity client
</ResponseField>

<ResponseField name="usage" type="UsageClient" required>
  usage client
</ResponseField>

<ResponseField name="trends" type="TrendsClient" required>
  trends client
</ResponseField>

<ResponseField name="posts" type="PostsClient" required>
  posts client
</ResponseField>

<ResponseField name="directMessages" type="DirectMessagesClient" required>
  direct messages client
</ResponseField>

<ResponseField name="communities" type="CommunitiesClient" required>
  communities client
</ResponseField>

<ResponseField name="media" type="MediaClient" required>
  media client
</ResponseField>

<ResponseField name="webhooks" type="WebhooksClient" required>
  webhooks client
</ResponseField>

<ResponseField name="stream" type="StreamClient" required>
  stream client
</ResponseField>

<ResponseField name="lists" type="ListsClient" required>
  lists client
</ResponseField>

<ResponseField name="request" type="Promise<T>" required>
  X API에 인증된 요청을 보냅니다

  이 메서드는 모든 API 요청에 대한 인증, 요청 형식 지정 및 오류 처리를
  담당합니다. 클라이언트 구성에 따라 적절한 인증 헤더를 자동으로
  추가합니다.
</ResponseField>

<ResponseField name="isTokenExpired" type="boolean" required>
  OAuth 2.0 토큰이 만료되었는지 확인합니다
</ResponseField>

<ResponseField name="refreshToken" type="Promise<void>" required>
  OAuth 2.0 토큰을 갱신합니다
</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>
