---
title: "身份验证"
description: "Twexapi 的 Bearer 令牌身份验证 — 与 Cursor、Claude Code、GitHub Copilot、ChatGPT 和 AI 编码代理一起使用。几分钟内开始使用。"
---

## **API 身份验证**

Twexapi 使用 Bearer 令牌身份验证来保护所有 API 请求。每个请求都必须在 `Authorization` 标头中包含有效的 API 密钥，才能访问我们的端点。

## 获取您的 API 密钥

按照以下简单步骤获取您的 API 密钥：

1. 登录到您的 [Twexapi 控制台](https://twexapi.io/dashboard)
2. 您唯一的 API 密钥将突出显示在控制台主页上
3. 安全地复制密钥 - 您将需要它在所有 API 请求中使用

:::tip
请确保您的 API 密钥安全，并永远不要将其暴露在客户端代码或公共存储库中。
:::

---

## 使用您的 API 密钥

在每次请求的 `Authorization` 标头中包含您的 API 密钥，格式如下：

**必需的标头：**

```bash
Authorization: Bearer YOUR_API_KEY
```

---

## 环境变量

SDK 和 CLI 从相同的凭据读取：

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

在原始 HTTP 请求中使用 `Authorization: Bearer YOUR_API_KEY`。生成的 SDK 接受 `bearer_auth` 或等效选项—请参阅每个 [SDK 页面](/sdks)。

---

## 使用 CLI 进行身份验证

安装官方 CLI，将您的 API 密钥保存为命名应用程序配置文件，然后运行命令而无需在 shell 历史记录中嵌入机密：

```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` 代替。请参阅 [MCP 服务器](/mcp/overview) 以获取 Cursor、Claude Code、Codex CLI 和其他客户端配置。

---

## 使用 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 或任何受支持的代理中，尝试以下提示："从我的 `.env` 文件配置 Twexapi 身份验证"、"为此 API 客户端添加 Bearer 身份验证" 或 "使用我的 API 密钥生成测试请求"。

---

## 写操作鉴权与 BYOC（自带授权 Cookie / Token）

虽然所有公开只读接口（推文高级搜索、用户资料、主页时间线、粉丝列表、回复评论树、热搜趋势）均**完全免 Cookie、免账号登录**，但所有涉及账户变动的写入操作均采用 **自带授权凭证（BYOC — Bring Your Own Cookie）** 模式。

### 支持的写入操作
- 发送推文与连环长帖 Thread (`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="用户自主授权 (User-Owned Auth)" icon="user-check">
    由您传入自身 Twitter 账户的 `auth_token` 或 Cookie。TwexAPI 严格作为受托的无状态执行中间件，杜绝 CFAA 未授权访问风险。
  </Card>
  <Card title="敏感凭证零沉淀 (Zero-Retention)" icon="shield-halved">
    会话凭证仅在单次 HTTP 调用的内存生命周期内生效，绝不记录日志、绝不存入数据库、绝不持久化落盘，符合 GDPR/CCPA 隐私规范。
  </Card>
  <Card title="版权与内容归属完整 (Full Legal Rights)" icon="scale">
    使用您合法拥有或受托管理的账户发布内容，版权和发布权完全归属于您本人，彻底消除第三方冒名侵权与违规连带责任。
  </Card>
  <Card title="拒绝共享号池污染 (No Shared Accounts)" icon="lock">
    TwexAPI 绝不出售、提供或混合使用第三方临时黑产账号，杜绝多租户交叉关联与连带封禁。
  </Card>
</CardGroup>

### 如何对写入请求进行身份验证

除了 `Authorization: Bearer YOUR_API_KEY` 标头之外，请直接在请求有效负载中提供您的账户的 `auth_token` 或 cookie 字符串：

```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": "从自动化管道中问候世界！",
    "cookie": "auth_token=YOUR_TWITTER_AUTH_TOKEN; ct0=YOUR_CT0_TOKEN"
  }'
```

:::tip 提取您的 auth_token
要获取您的账户的 `auth_token`，打开浏览器的开发者工具 (`F12`)，导航到 **应用 > 存储 > Cookies > https://x.com**，并复制 `auth_token` cookie 的值。
:::

---

## **实现示例**

以下是一些实际示例，展示了如何在不同的编程语言中验证您的请求：

:::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/浏览器)

使用现代 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) 中的按请求付费微费率
- **错误恢复**：处理 `4xx`/`5xx` 响应—请参阅 [错误处理](/guides/error-handling)
- **速率限制**：在 `429` 上回退—请参阅 [速率限制](/guides/rate-limits)
- **零 cookie 公共读取**：了解为什么与自托管设置相比不需要登录 cookie，请参阅 [自托管 Scraper 与 TwexAPI](/comparison/scraper-vs-api) 和 [Nitter 替代方案](/comparison/nitter-alternatives)
- **架构评估**：将 TwexAPI 与官方 X API（按资源付费与按请求付费）进行比较—请参阅 [官方 X API 比较](/comparison/official-x-api)
- **HTTPS 仅限**：所有请求都必须使用 HTTPS 以确保安全
