> ## 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와 상호작용하기 위한 주요 진입점입니다. 전용 Client 모듈을 통해 모든 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`](/ko/xdks/typescript/reference/classes/Client)

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

<div id="parameters">
  #### 매개변수
</div>

| Name     | Type  | Description  |
| :------- | :---- | :----------- |
| `config` | `any` | Client 구성 옵션 |

<div id="returns">
  #### 반환값
</div>

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

**`예제`**

```typescript theme={null}
// Bearer 토큰 인증
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">
  인증을 위한 Bearer 토큰
</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>
  게시물 클라이언트
</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>
  리스트 클라이언트
</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>
