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

クライアントの作成

どの認証フローも Client インスタンスを作成します:

1. Bearer Token(アプリのみ)

ユーザーコンテキストを伴わない読み取り専用の操作向けです。 手順:
  1. Developer Console でアプリの Bearer Token を生成します。
  2. それを Client に渡します。 :
使い方:

2. PKCE 付き OAuth 2.0(ユーザーコンテキスト)

この例では、Proof Key for Code Exchange(PKCE)付きの OAuth 2.0 を使う方法を示します。ユーザー固有のアクセス(ユーザーの代わりに投稿する、ユーザーのためにメディアをアップロードするなど)に使用します。 手順:
  1. Developer Console で、リダイレクト URI(例: http://localhost:8080/callback)を指定してアプリを登録します。
  2. Client ID を取得します(PKCE ではシークレットは不要です)。
  3. フローを開始し、ユーザーを認可 URL に誘導し、コールバックを処理します。 (コールバック用の Web サーバーを使用):
Example
トークンの更新(長時間セッションでは SDK が自動的に処理):

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

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