> ## 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.

# OAuth2PKCEAuth

このモジュールは、安全な認可フローのための OAuth2 PKCE（Proof Key for Code Exchange）認証機能を提供します。コードベリファイアの生成、トークンの管理、自動トークン更新といった機能を備えています。

<div id="class-xdkoauth2_authoauth2pkceauth">
  ### `class xdk.oauth2_auth.OAuth2PKCEAuth`
</div>

X API 用の OAuth2 PKCE 認証を行うクラスです。

#### パラメータ

<ParamField path="path.base_url" type="str" default="'https://api.x.com'" />

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'" />

<ParamField path="path.client_id" type="str or None" default="None" />

<ParamField path="path.client_secret" type="str or None" default="None" />

<ParamField path="path.redirect_uri" type="str or None" default="None" />

<ParamField path="path.token" type="Dict[str, Any] or None" default="None" />

<ParamField path="path.scope" type="str or List[str] or None" default="None" />

<div id="__init__">
  ### `__init__`
</div>

OAuth 2.0 PKCE 認証を初期化します。

<div id="parameters">
  #### Parameters
</div>

<ParamField path="path.base_url" type="str" default="'https://api.x.com'">
  X API のトークンエンドポイント用のベース URL（デフォルトは [https://api.x.com](https://api.x.com)）。
</ParamField>

<ParamField path="path.authorization_base_url" type="str" default="'https://x.com/i'">
  OAuth2 認可用のベース URL（デフォルトは [https://x.com/i](https://x.com/i)）。
</ParamField>

<ParamField path="path.client_id" type="str or None" default="None">
  X API 用のクライアント ID。
</ParamField>

<ParamField path="path.client_secret" type="str or None" default="None">
  X API 用のクライアントシークレット。
</ParamField>

<ParamField path="path.redirect_uri" type="str or None" default="None">
  OAuth2 認可用のリダイレクト URI。
</ParamField>

<ParamField path="path.token" type="Dict[str, Any] or None" default="None">
  既存の OAuth2 トークンの辞書オブジェクト（存在する場合）。
</ParamField>

<ParamField path="path.scope" type="str or List[str] or None" default="None">
  OAuth2 の認可スコープを指定する、スペース区切りの文字列または文字列のリスト。
</ParamField>

<div id="exchange_code">
  ### `exchange_code`
</div>

認可コードをトークンに交換します（TypeScript API と対応しています）。

#### パラメーター

<ParamField path="path.code" type="str">
  コールバックで受け取った認可コード。
</ParamField>

<ParamField path="path.code_verifier" type="str or None" default="None">
  省略可能なコードベリファイア（指定しない場合は保存済みのベリファイアを使用します）。
</ParamField>

<div id="returns">
  #### 戻り値
</div>

`Dictstr, Any`

<div id="fetch_token">
  ### `fetch_token`
</div>

認可レスポンス URL からトークンを取得します（レガシーなメソッドで、内部的に `exchange_code` を使用します）。

#### パラメーター

<ParamField path="path.authorization_response" type="str">
  認可後に受信した完全なコールバック URL
</ParamField>

<div id="returns">
  #### 戻り値
</div>

`Dictstr, Any`

<div id="get_authorization_url">
  ### `get_authorization_url`
</div>

OAuth2 PKCE フローの認可 URL を取得します。

#### パラメーター

<ParamField path="path.state" type="str or None" default="None">
  セキュリティ向上のためのオプションの state パラメーターです。
</ParamField>

<div id="returns">
  #### 戻り値
</div>

`str`

<div id="get_code_challenge">
  ### `get_code_challenge`
</div>

現在のコードチャレンジ（PKCE 用）を取得します。
:returns: 現在のコードチャレンジ。設定されていない場合は None を返します。
:rtype: Optional\[str]

<div id="returns">
  #### 戻り値
</div>

`str | None`

<div id="get_code_verifier">
  ### `get_code_verifier`
</div>

現在のコードベリファイア（PKCE 用）を取得します。
:returns: 現在のコードベリファイア。設定されていない場合は None を返します。
:rtype: Optional\[str]

<div id="returns">
  #### 戻り値
</div>

`str | None`

<div id="is_token_expired">
  ### `is_token_expired`
</div>

トークンの有効期限が切れているかどうかを確認します。
:returns: トークンの有効期限が切れている場合は True、そうでない場合は False を返します。
:rtype: bool

<div id="returns">
  #### 戻り値
</div>

`bool`

<div id="refresh_token">
  ### `refresh_token`
</div>

アクセストークンを更新します。
:returns: 更新されたトークンを格納した辞書
:rtype: Dict\[str, Any]

<div id="returns">
  #### 戻り値
</div>

`Dictstr, Any`

<div id="set_pkce_parameters">
  ### `set_pkce_parameters`
</div>

PKCE のパラメータを手動で設定します。

#### パラメーター

<ParamField path="path.code_verifier" type="str">
  使用する code verifier。
</ParamField>

<ParamField path="path.code_challenge" type="str or None" default="None">
  オプションの code challenge（指定しない場合は自動生成されます）。
</ParamField>
