身份验证
Twexapi 的 Bearer 令牌身份验证 — 与 Cursor、Claude Code、GitHub Copilot、ChatGPT 和 AI 编码代理一起使用。几分钟内开始使用。
API 身份验证
Twexapi 使用 Bearer 令牌身份验证来保护所有 API 请求。每个请求都必须在 Authorization 标头中包含有效的 API 密钥,才能访问我们的端点。
获取您的 API 密钥
按照以下简单步骤获取您的 API 密钥:
- 登录到您的 Twexapi 控制台
- 您唯一的 API 密钥将突出显示在控制台主页上
- 安全地复制密钥 - 您将需要它在所有 API 请求中使用
使用您的 API 密钥
在每次请求的 Authorization 标头中包含您的 API 密钥,格式如下:
必需的标头:
Authorization: Bearer YOUR_API_KEY
环境变量
SDK 和 CLI 从相同的凭据读取:
export X_API_SCRAPER_KEY="YOUR_API_KEY"
在原始 HTTP 请求中使用 Authorization: Bearer YOUR_API_KEY。生成的 SDK 接受 bearer_auth 或等效选项—请参阅每个 SDK 页面。
使用 CLI 进行身份验证
安装官方 CLI,将您的 API 密钥保存为命名应用程序配置文件,然后运行命令而无需在 shell 历史记录中嵌入机密:
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。
使用 MCP 进行身份验证
将 AI 代理连接到 https://api.twexapi.io/mcp 并使用您的 API 密钥:
{
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
某些客户端接受 Authorization: Bearer YOUR_API_KEY 代替。请参阅 MCP 服务器 以获取 Cursor、Claude Code、Codex CLI 和其他客户端配置。
使用 AI 编码代理进行身份验证
安装 TwexAPI 技能,以便 Cursor、Claude Code、GitHub Copilot、ChatGPT、Cline、Windsurf、Codex、Gemini CLI、Continue、Roo Code 和其他 AI 助手知道如何正确附加 Bearer 令牌。设置指南和 CLI 选项可在 集成中心 找到。
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)
委托执行与凭据零沉淀安全保障
用户自主授权 (User-Owned Auth)
由您传入自身 Twitter 账户的 auth_token 或 Cookie。TwexAPI 严格作为受托的无状态执行中间件,杜绝 CFAA 未授权访问风险。
敏感凭证零沉淀 (Zero-Retention)
会话凭证仅在单次 HTTP 调用的内存生命周期内生效,绝不记录日志、绝不存入数据库、绝不持久化落盘,符合 GDPR/CCPA 隐私规范。
版权与内容归属完整 (Full Legal Rights)
使用您合法拥有或受托管理的账户发布内容,版权和发布权完全归属于您本人,彻底消除第三方冒名侵权与违规连带责任。
拒绝共享号池污染 (No Shared Accounts)
TwexAPI 绝不出售、提供或混合使用第三方临时黑产账号,杜绝多租户交叉关联与连带封禁。
如何对写入请求进行身份验证
除了 Authorization: Bearer YOUR_API_KEY 标头之外,请直接在请求有效负载中提供您的账户的 auth_token 或 cookie 字符串:
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"
}'
实现示例
以下是一些实际示例,展示了如何在不同的编程语言中验证您的请求:
cURL
非常适合测试和快速 API 探索:
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 库:
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 实现:
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 请求:
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或密钥管理器中,永远不要将其硬编码 - 透明计费:查看我们的 定价 & 计费指南 中的按请求付费微费率
- 错误恢复:处理
4xx/5xx响应—请参阅 错误处理 - 速率限制:在
429上回退—请参阅 速率限制 - 零 cookie 公共读取:了解为什么与自托管设置相比不需要登录 cookie,请参阅 自托管 Scraper 与 TwexAPI 和 Nitter 替代方案
- 架构评估:将 TwexAPI 与官方 X API(按资源付费与按请求付费)进行比较—请参阅 官方 X API 比较
- HTTPS 仅限:所有请求都必须使用 HTTPS 以确保安全