- Bearer Token(アプリのみ)
- PKCE 付き OAuth 2.0
- OAuth 1.0a(ユーザーコンテキスト)
- Bearer Token: アプリ認証に対応するエンドポイントで、読み取り専用アクセスに使用します(投稿の検索、ストリーミングエンドポイントなど)。
- OAuth 2.0 PKCE: スコープに基づき、ユーザーが認可したアクセス(例: 認証済みユーザーの非公開の投稿メトリクスを取得)向けの安全な認証です。
- OAuth 1.0a: ユーザー固有の操作向けのレガシー認証です(ユーザーの代わりに投稿する、リストを管理するなど)。 認証情報は X Developer Console から取得します。承認済みの開発者アカウントと、適切な権限(Read + Write など)を持つアプリが必要です。
クライアントの作成
どの認証フローもClient インスタンスを作成します:
1. Bearer Token(アプリのみ)
ユーザーコンテキストを伴わない読み取り専用の操作向けです。 手順:- Developer Console でアプリの Bearer Token を生成します。
- それを
Clientに渡します。 例:
2. PKCE 付き OAuth 2.0(ユーザーコンテキスト)
この例では、Proof Key for Code Exchange(PKCE)付きの OAuth 2.0 を使う方法を示します。ユーザー固有のアクセス(ユーザーの代わりに投稿する、ユーザーのためにメディアをアップロードするなど)に使用します。 手順:- Developer Console で、リダイレクト URI(例:
http://localhost:8080/callback)を指定してアプリを登録します。 - Client ID を取得します(PKCE ではシークレットは不要です)。
- フローを開始し、ユーザーを認可 URL に誘導し、コールバックを処理します。 例(コールバック用の Web サーバーを使用):
Example
3. OAuth 1.0a(ユーザーコンテキスト)
OAuth 1.0a 認証を必要とするレガシーアプリケーションや特定のユースケース向けです: 手順:- Developer Console で API Key と API Secret を取得します。
- すでにアクセストークンを持っている場合はそのまま使用します。持っていない場合は OAuth 1.0a フローを実行して取得します。
- OAuth1 インスタンスを作成し、Client に渡します。 例(既存のアクセストークンを使用):
Example
Example
- 本番環境ではシークレットをハードコーディングせず、環境変数やシークレットマネージャー(例:
os.getenv("X_BEARER_TOKEN"))を使用してください。 - PKCE では、本番のリダイレクト URI は HTTPS にしてください。
- SDK はトークンを検証し、失敗時に
xdk.AuthenticationErrorを発生させます。 Python XDK を使った詳細なコードサンプルは、コードサンプル GitHub リポジトリを参照してください。