---
title: "認証"
description: "TwexapiのBearerトークン認証 — Cursor、Claude Code、GitHub Copilot、ChatGPT、AIコーディングエージェントと一緒に使用。数分で始めましょう。"
---

## **API認証**

Twexapiは、すべてのAPIリクエストを保護するためにBearerトークン認証を使用します。各リクエストには、エンドポイントにアクセスするために必須の有効なAPIキーをAuthorizationヘッダーに含める必要があります。

## APIキーの取得方法

以下の手順に従ってAPIキーを取得してください：

1. [Twexapiダッシュボード](https://twexapi.io/dashboard)にサインインします
2. あなたのユニークなAPIキーは、ダッシュボードのホームページに明示的に表示されます
3. セキュリティを確保してキーをコピーします — すべてのAPIリクエストに必要です

:::tip
APIキーを安全に保管し、クライアントサイドのコードやパブリックリポジトリに公開することは決してありません。
:::

---

## APIキーの使用方法

APIキーを`Authorization`ヘッダーに含めて、Bearerトークン形式で各リクエストに追加してください：

**必須ヘッダー：**

```bash
Authorization: Bearer YOUR_API_KEY
```

---

## 環境変数

SDKとCLIは同じ認証情報を読み取ります：

```bash
export X_API_SCRAPER_KEY="YOUR_API_KEY"
```

 raw HTTPリクエストでは`Authorization: Bearer YOUR_API_KEY`を使用します。生成されたSDKは`bearer_auth`または同等のオプションを受け入れます — 各[SDKページ](/sdks)を参照してください。

---

## CLIでの認証

公式CLIをインストールし、APIキーを名前付きアプリプロファイルとして保存して、シェルの履歴にシークレットを埋め込まずにコマンドを実行します：

```bash
npm install -g @twexapi-dev/x-api-scraper-cli

export X_API_SCRAPER_KEY="YOUR_API_KEY"

x-api-scraper auth apps add --name prod --api-key "YOUR_API_KEY"
x-api-scraper auth apps use prod
x-api-scraper --app prod about elonmusk
```

完全なコマンドリファレンス：[CLI](/sdks/cli)。

---

## MCPでの認証

AIエージェントを`https://api.twexapi.io/mcp`にAPIキーで接続します：

```json
{
  "headers": {
    "x-api-key": "YOUR_API_KEY"
  }
}
```

一部のクライアントは`Authorization: Bearer YOUR_API_KEY`を代替的に受け入れます。Cursor、Claude Code、Codex CLI、および他のクライアントの設定については[MCPサーバー](/mcp/overview)を参照してください。

---

## AIコーディングエージェントとの認証

TwexAPIスキルをインストールして、**Cursor**、**Claude Code**、**GitHub Copilot**、**ChatGPT**、**Cline**、**Windsurf**、**Codex**、**Gemini CLI**、**Continue**、**Roo Code**、および他のAIアシスタントがBearerトークンを正しくアタッチするようにします。セットアップガイドとCLIオプションは[統合ハブ](https://twexapi.io/integrations)にあります。

:::tip
[ダッシュボード](https://twexapi.io/dashboard)からAPIキーをコピーし、`X_API_SCRAPER_KEY`または`.env`ファイルに保存し、エージェントに`Authorization: Bearer YOUR_API_KEY`を設定するスキルを設定してください — スキルはcURL、Python、JavaScript、CLIを通じて認証パターンをカバーします。
:::

```bash
npx skills add twexapi-dev/x-api-scraper-cli
```

Cursor、GitHub Copilot、Claude Code、ChatGPT、Continue、Roo Code、またはサポートされているエージェントで、*"Twexapi authを私の`.env`ファイルから設定する"*, *"このAPIクライアントにBearer認証を追加する"*,または*"私のAPIキーを使用してテストリクエストを生成する"*などのプロンプトを試してみてください。

---

## オペレーション記述とBYOC（Bring Your Own Cookie）

すべてのパブリックリードエンドポイント（検索、ユーザープロファイル、ツイート、フォロワー、スレッド、トレンド）は**ゼロクッキーやTwitterログイン認証情報**を必要としますが、書き込みアクションは**BYOC（Bring Your Own Cookie）**モデルで動作します。

### サポートされる書き込みアクション

- ツイートとスレッド投稿の作成（`POST /twitter/tweets/create`、`POST /v3/twitter/tweets/create_thread`）
- いいねとリツイート（`POST /twitter/tweets/{tweet_id}/like`、`POST /twitter/tweets/{tweet_id}/retweet`）
- ダイレクトメッセージの送信（`POST /v3/twitter/send_dm`）
- アカウントのフォロー（`POST /twitter/user/follow`）

### 委託実行とゼロリテンションセキュリティ

<CardGroup cols={2}>
  <Card title="ユーザーオーナード認証" icon="user-check">
    あなたのTwitterアカウントの`auth_token`またはクッキーストリングを通じて、TwexAPIはあなたの代わりにステートレスな実行ゲートウェイとして動作します。
  </Card>
  <Card title="ゼロクレジットリテンション" icon="shield-halved">
    セッショントークンは、特定のHTTPリクエストの実行中に一時的なサーバーメモリに保持されます。ディスクやデータベースに保存されることはありません。
  </Card>
  <Card title="完全な法的およびコンテンツ保護" icon="scale">
    アクションは明示的に認証されたアカウントの認証情報で実行されるため、あなたのチームは完全な著作権を保持し、第三者による模倣責任を排除します。
  </Card>
  <Card title="共有アカウント汚染のないもの" icon="lock">
    TwexAPIは書き込み操作に使用されるためのプール、リサイクル、または共有のバーナーアカウントを使用しません。あなたのアクションは完全にあなたのアカウントに限定されます。
  </Card>
</CardGroup>

### 書き込みリクエストの認証方法

`Authorization: Bearer YOUR_API_KEY`ヘッダーの他に、リクエストペイロードに直接あなたのアカウントの`auth_token`またはクッキーストリングを提供してください：

```bash
curl -X POST "https://api.twexapi.io/twitter/tweets/create" \
  -H "Authorization: Bearer YOUR_TWEXAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tweet_text": "Hello world from an automated pipeline!",
    "cookie": "auth_token=YOUR_TWITTER_AUTH_TOKEN; ct0=YOUR_CT0_TOKEN"
  }'
```

:::tip auth_tokenの抽出
あなたのアカウントの`auth_token`を取得するには、ブラウザの開発者ツール（`F12`）、**アプリケーション > ストレージ > クッキー > https://x.com**に移動し、`auth_token`クッキーの値をコピーしてください。
:::

---

## 実装例

以下は、異なるプログラミング言語でリクエストを認証する実際の例を示しています：

:::note
`YOUR_API_KEY`をダッシュボードから実際のAPIキーに置き換えてください。すべての例はユーザー情報の取得をデモ目的としています。
:::

### cURL

テストや迅速なAPI探索に最適：

```bash
curl --request GET \
  --url 'https://api.twexapi.io/twitter/users?usernames=elonmusk' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json'
```

### Python

人気のある`requests`ライブラリを使用：

```python
import requests

# APIエンドポイントとパラメータ
url = "https://api.twexapi.io/twitter/users"
params = {"usernames": "elonmusk"}

# 認証ヘッダー
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
}

# リクエストを送信
response = requests.get(url, headers=headers, params=params)

# レスポンスを処理
if response.status_code == 200:
    data = response.json()
    print(data)
else:
    print(f"Error: {response.status_code} - {response.text}")
```

### JavaScript（Node.js/Browser）

モダンなfetch API実装：

```javascript
const fetchUserData = async () => {
  const options = {
    method: 'GET',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  };

  try {
    const response = await fetch(
      'https://api.twexapi.io/twitter/users?usernames=elonmusk', 
      options
    );
    
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Request failed:', error);
  }
};

fetchUserData();
```

### Java

Unirestを使用してシンプルなHTTPリクエスト：

```java
import kong.unirest.HttpResponse;
import kong.unirest.Unirest;

public class TwitterApiExample {
    public static void main(String[] args) {
        try {
            HttpResponse<String> response = Unirest
                .get("https://api.twexapi.io/twitter/users?usernames=elonmusk")
                .header("Authorization", "Bearer YOUR_API_KEY")
                .header("Content-Type", "application/json")
                .asString();
            
            if (response.getStatus() == 200) {
                System.out.println(response.getBody());
            } else {
                System.err.println("Error: " + response.getStatus() + " - " + response.getBody());
            }
        } catch (Exception e) {
            System.err.println("Request failed: " + e.getMessage());
        }
    }
}
```

## **ベストプラクティスと次のステップ**

- **環境変数**：APIキーを`X_API_SCRAPER_KEY`またはシークレットマネージャーに保存し、ハードコードすることは決してありません
- **透明な課金**：[課金と請求ガイド](/guides/pricing)に記載されているペイパーレークエンジェージを確認してください
- **エラーレコvery**：`4xx`/`5xx`レスポンスをハンドルしてください — [エラーハンドリング](/guides/error-handling)を参照してください
- **レートリミット**：`429`に対してバックオフしてください — [レートリミット](/guides/rate-limits)を参照してください
- **ゼロクッキー公的な読み取り**：[Self-Hosted Scraper vs TwexAPI](/comparison/scraper-vs-api)および[Nitterの代替案](/comparison/nitter-alternatives)で、自社ホストされたセットアップと比較して、なぜログインクッキーが必要ないのかを理解してください
- **アーキテクチャ評価**：公式X API（リソースごとに課金するか、リクエストごとに課金するか）と比較して、[公式X API比較](/comparison/official-x-api)を行ってください
- **HTTPSのみ**：すべてのリクエストはHTTPSを使用する必要があります
