Skip to main content
X API는 모든 엔드포인트에 인증을 요구합니다. XDK는 세 가지 인증 방식을 지원합니다:
  1. Bearer 토큰 (앱 전용)
  2. OAuth 2.0 with PKCE
  3. OAuth 1.0a (사용자 컨텍스트)
  • Bearer Token: 앱 인증을 지원하는 엔드포인트(예: 게시물 검색, 스트리밍 엔드포인트)에 대한 읽기 전용 액세스에 사용합니다.
  • OAuth 2.0 PKCE: 스코프 기반의 사용자 승인 액세스를 위한 안전한 인증 방식입니다(예: 인증된 사용자의 게시물 non_public 메트릭 가져오기).
  • OAuth 1.0a: 사용자별 작업(예: 사용자를 대신해 게시물 작성, 리스트 관리)을 위한 레거시 인증입니다. X 개발자 콘솔에서 자격 증명을 발급받으세요. 승인된 개발자 계정과 적절한 권한(예: 읽기 + 쓰기)을 가진 앱이 필요합니다.

Client 생성하기

모든 인증 플로우는 Client 인스턴스를 생성합니다.

1. Bearer Token (App-Only)

읽기 전용 작업을 사용자 컨텍스트 없이 수행할 때 사용합니다. 단계:
  1. 개발자 콘솔에서 App용 Bearer 토큰을 생성합니다.
  2. 생성한 토큰을 Client에 전달합니다. 예시:
사용 방법:

2. OAuth 2.0 with PKCE (사용자 컨텍스트)

이 예제는 Proof Key for Code Exchange(PKCE)를 사용하는 OAuth 2.0 흐름을 보여줍니다. 이를 사용자별 액세스(예: 사용자를 대신해 게시물 작성), 특정 사용자의 미디어 업로드 등에 사용합니다. 단계:
  1. 개발자 콘솔에서 리디렉트 URI(예: http://localhost:8080/callback)와 함께 App을 등록합니다.
  2. Client ID를 발급받습니다(PKCE에는 secret이 필요하지 않습니다).
  3. 플로우를 시작하고, 사용자를 인증 URL로 리디렉션한 뒤 콜백을 처리합니다. 예시 (콜백 처리를 위해 웹 서버를 사용하는 경우):
토큰 갱신 (장기 세션에서는 SDK에서 자동으로 처리됨):

3. OAuth 1.0a (User Context)

레거시 애플리케이션 또는 OAuth 1.0a 인증이 필요한 특정 사용 사례의 경우: 단계:
  1. 개발자 콘솔에서 API Key와 API Secret을 가져옵니다.
  2. 이미 액세스 토큰이 있다면 그대로 사용합니다. 없다면 OAuth 1.0a 플로우를 완료해 액세스 토큰을 발급받습니다.
  3. OAuth1 인스턴스를 생성하고 이를 Client에 전달합니다. 예시 (기존 액세스 토큰이 있는 경우):
예시 (전체 OAuth 1.0a 흐름):
참고:
  • 운영 환경에서는 시크릿을 절대로 하드코딩하지 말고, 환경 변수나 시크릿 관리자(예: os.getenv("X_BEARER_TOKEN"))를 사용하세요.
  • PKCE를 사용할 때는 운영 환경에서 리디렉션 URI에 반드시 HTTPS를 사용하도록 하세요.
  • SDK는 토큰의 유효성을 검사하고, 실패 시 xdk.AuthenticationError를 발생시킵니다. Python XDK를 사용하는 더 자세한 코드 예시는 코드 샘플 GitHub 리포지토리를 참고하세요.