API 接口文档
QQ群好友自助获取测试Token
说明: 如果您是QQ群好友,可以通过输入QQ号免费获取测试API Token(100次请求额度)
基本信息
| API Base URL: | https://twitterapi.xiaowupro.top |
|---|---|
| Content-Type: | application/json |
| 字符编码: | UTF-8 |
| 认证方式: | Token认证(URL参数) |
获取KOL推文列表
GET接口地址: /api/v1/user/last_tweets
功能描述: 获取指定KOL的最新推文列表,支持Token认证和速率限制
请求参数(URL参数)
| 参数名 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
token |
String | 是 | API访问令牌 | your_access_token |
kol_id |
String | 是 | KOL的用户ID(Twitter用户ID) | 44196397 |
count |
Integer | 否 | 获取推文数量,默认10,范围1-20 | 10 |
请求示例
GET /api/v1/user/last_tweets?token=your_access_token&kol_id=44196397&count=10
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
status |
String | 响应状态:success 或 fail |
data |
Object | 响应数据对象 |
data.kol_id |
String | KOL用户ID |
data.count |
Integer | 返回的推文数量 |
data.tweets |
Array | 推文列表 |
data.tweets[].tweet_id |
String | 推文ID |
data.tweets[].text |
String | 推文文本内容 |
data.tweets[].tweet_type |
String | 推文类型(普通推文、转发等) |
data.tweets[].created_at |
String | 推文创建时间 |
data.tweets[].web_url |
String | 推文网页URL |
data.tweets[].tweet_json |
Object | 推文完整JSON数据 |
data.token_usage |
Object | Token使用情况 |
data.token_usage.used |
Integer | 已使用次数 |
data.token_usage.max |
Integer | 最大使用次数 |
data.token_usage.remaining |
Integer | 剩余使用次数 |
data.rate_limit |
Object | 速率限制信息 |
data.rate_limit.limit |
Integer | 速率限制(次/分钟) |
data.rate_limit.remaining |
Integer | 本分钟剩余请求次数 |
data.rate_limit.window |
String | 限流时间窗口(60s) |
成功响应示例
{
"status": "success",
"data": {
"kol_id": "44196397",
"count": 2,
"tweets": [
{
"tweet_id": "1234567890123456789",
"text": "这是一条推文内容...",
"tweet_type": "普通推文",
"created_at": "2025-12-15 10:30:00",
"web_url": "https://twitter.com/elonmusk/status/1234567890123456789",
"tweet_json": {
"id": "1234567890123456789",
"full_text": "完整推文内容...",
"user": {
"id": "44196397",
"screen_name": "elonmusk",
"name": "Elon Musk"
},
"entities": {},
"extended_entities": {}
}
},
{
"tweet_id": "1234567890123456788",
"text": "另一条推文...",
"tweet_type": "普通推文",
"created_at": "2025-12-15 09:00:00",
"web_url": "https://twitter.com/elonmusk/status/1234567890123456788",
"tweet_json": {}
}
],
"token_usage": {
"used": 150,
"max": 1000,
"remaining": 850
},
"rate_limit": {
"limit": 5,
"remaining": 4,
"window": "60s"
}
}
}
错误响应示例
// 缺少参数
{
"status": "fail",
"reason": "缺少kol_id参数"
}
// Token无效
{
"status": "fail",
"reason": "Token无效或已过期"
}
// 速率限制
{
"status": "fail",
"reason": "请求过于频繁,每分钟最多5次请求,已达上限,请稍后再试"
}
// Token用尽
{
"status": "fail",
"reason": "Token使用次数已达上限"
}
HTTP状态码说明
| 状态码 | 说明 | 可能原因 |
|---|---|---|
200 |
请求成功 | 正常返回数据 |
400 |
请求参数错误 | 缺少必需参数或参数格式错误 |
401 |
认证失败 | Token无效、过期或Token使用次数已用尽 |
429 |
请求过于频繁 | 超过速率限制,需等待一段时间后重试 |
500 |
服务器内部错误 | 系统异常,请联系管理员 |
使用说明
1. 获取Token
请联系系统管理员获取API访问Token。每个Token都有使用次数限制和速率限制。
2. 速率限制
默认速率限制为 5次/分钟。超过限制会返回429错误,需等待后重试。
3. 使用次数
每个Token都有最大使用次数限制,用尽后需要续期或申请新Token。可通过响应中的 token_usage 字段查看剩余次数。
4. KOL ID 获取
kol_id 是Twitter用户的数字ID(不是用户名)。可以通过Twitter API或第三方工具获取。
5. 推荐做法
- 每次请求后检查
rate_limit.remaining,避免触发速率限制 - 定期检查
token_usage.remaining,提前申请续期 - 合理设置
count参数,避免获取过多数据 - 妥善保管Token,避免泄露
调用示例
Python示例
import requests
# API配置
API_BASE_URL = "http://your-server:port"
TOKEN = "your_access_token"
# 请求参数
params = {
"token": TOKEN,
"kol_id": "44196397",
"count": 10
}
# 发送请求
response = requests.get(f"{API_BASE_URL}/api/v1/user/last_tweets", params=params)
data = response.json()
# 处理响应
if data["status"] == "success":
tweets = data["data"]["tweets"]
print(f"获取到 {len(tweets)} 条推文")
for tweet in tweets:
print(f"- {tweet['text']}")
# 检查剩余次数
remaining = data["data"]["token_usage"]["remaining"]
print(f"Token剩余使用次数: {remaining}")
else:
print(f"请求失败: {data['reason']}")
JavaScript示例
const API_BASE_URL = 'http://your-server:port';
const TOKEN = 'your_access_token';
// 构建请求URL
const params = new URLSearchParams({
token: TOKEN,
kol_id: '44196397',
count: 10
});
// 发送请求
fetch(`${API_BASE_URL}/api/v1/user/last_tweets?${params}`)
.then(response => response.json())
.then(data => {
if (data.status === 'success') {
const tweets = data.data.tweets;
console.log(`获取到 ${tweets.length} 条推文`);
tweets.forEach(tweet => {
console.log(`- ${tweet.text}`);
});
// 检查剩余次数
const remaining = data.data.token_usage.remaining;
console.log(`Token剩余使用次数: ${remaining}`);
} else {
console.error(`请求失败: ${data.reason}`);
}
})
.catch(error => {
console.error('请求错误:', error);
});