Skip to main content
X API では、すべてのエンドポイントで認証が必要です。XDK は次の 3 つの認証方法をサポートしています。
  1. Bearer Token(アプリのみ)
  2. OAuth 2.0 with PKCE
  3. OAuth 1.0a(ユーザーコンテキスト)
  • Bearer Token: app-auth(アプリ認証)をサポートするエンドポイントへの読み取り専用アクセスに使用します(例: ポスト検索、ストリーミングエンドポイント)。
  • OAuth 2.0 with PKCE: スコープベースでユーザーが許可したアクセスを安全に行うために使用します(例: 認証済みユーザーのポストの非公開メトリクスを取得)。
  • OAuth 1.0a: ユーザー固有の操作(例: ユーザーに代わってポストする、リストを管理する)向けのレガシーな認証方式です。
X 開発者コンソール から認証情報を取得してください。承認済みの開発者アカウントと、適切な権限(例: Read + Write)を持つ App が必要です。

Client の作成

すべての認証フローでは Client インスタンスが作成されます。

1. ベアラートークン (App-only)

ユーザーコンテキストを伴わない読み取り専用の操作に使用します。 手順:
  1. 開発者コンソールで、対象の App 用のベアラートークンを生成します。
  2. それを Client に渡します。 :
使用方法:

2. OAuth 2.0 と PKCE を用いる場合(ユーザーコンテキスト)

この例では、Proof Key for Code Exchange(PKCE)を用いた OAuth 2.0 の使い方を示します。ユーザー単位のアクセス(例: ユーザーに代わってポストする)、ユーザー用のメディアアップロードなどに使用します。 手順:
  1. 開発者コンソールで App を登録し、リダイレクト URI(例: http://localhost:8080/callback)を設定します。
  2. Client ID を取得します(PKCE では secret は不要です)。
  3. フローを開始し、ユーザーを認可 URL にリダイレクトしてコールバックを処理します。 (コールバック用に Web サーバーを使用する場合):
トークンのリフレッシュ(長時間のセッションでは SDK により自動的に実行されます):

3. OAuth 1.0a (ユーザーコンテキスト)

レガシーなアプリケーションや、OAuth 1.0a 認証を必要とする特定のユースケース向けです: 手順:
  1. 開発者コンソールで API キーと API シークレットを取得します。
  2. すでにアクセストークンがある場合は、そのまま使用します。ない場合は、OAuth 1.0a フローを完了して取得します。
  3. OAuth1 インスタンスを作成し、それを Client に渡します。 (既存のアクセストークンを使用する場合):
(OAuth 1.0a フロー全体):
注意:
  • 本番環境ではシークレットをハードコードせず、環境変数やシークレットマネージャー(例: os.getenv("X_BEARER_TOKEN"))を使用してください。
  • PKCE を使用する場合、本番環境のリダイレクト URI には必ず HTTPS を使用してください。
  • SDK はトークンを検証し、失敗した場合は xdk.AuthenticationError を送出します。 Python 用 XDK を用いたコード例の詳細については、コードサンプルの GitHub リポジトリを参照してください。