任务 API
创建和管理自动化任务的参考。
概述
任务是 Browserman 执行的单个自动化作业。每个任务代表一个操作,如发布推文、点赞内容或任何平台特定的动作。
任务状态
任务经历几个状态:
pending- 任务已排队,等待开始processing- 任务当前正在执行completed- 任务成功完成failed- 任务遇到错误timeout- 任务超过时间限制cancelled- 任务被用户取消
创建任务
执行平台特定工具。
端点:
POST /api/tasks请求体:
json
{
"platform": "twitter",
"tool": "createTweet",
"accountName": "my-account",
"parameters": {
"text": "你好世界!",
"preferredEngine": "lite"
}
}示例:
bash
curl -X POST https://api.browserman.run/api/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "twitter",
"tool": "createTweet",
"accountName": "my-twitter",
"parameters": {
"text": "测试 Browserman API!🚀"
}
}'成功响应:
json
{
"success": true,
"data": {
"taskId": "task_abc123def456",
"state": "pending",
"platform": "twitter",
"tool": "createTweet",
"accountName": "my-twitter",
"createdAt": "2024-01-15T10:30:00Z"
}
}获取任务状态
检索任务的当前状态和结果。
端点:
GET /api/tasks/:taskId示例:
bash
curl https://api.browserman.run/api/tasks/task_abc123def456 \
-H "Authorization: Bearer YOUR_API_KEY"响应(已完成):
json
{
"success": true,
"data": {
"taskId": "task_abc123def456",
"state": "completed",
"platform": "twitter",
"tool": "createTweet",
"accountName": "my-twitter",
"createdAt": "2024-01-15T10:30:00Z",
"startedAt": "2024-01-15T10:30:05Z",
"completedAt": "2024-01-15T10:30:15Z",
"duration": 10000,
"result": {
"success": true,
"output": "推文发布成功",
"tweetUrl": "https://x.com/username/status/1234567890"
}
}
}列出任务
获取带过滤和分页的任务列表。
端点:
GET /api/tasks查询参数:
limit(可选)- 每页项目数(默认:50,最多:100)offset(可选)- 跳过的项目数(默认:0)platform(可选)- 按平台过滤:twitter、xueqiu、eastmoney、tonghuashunaction(可选)- 按操作名称过滤:createTweet、likeTweet、post 等status(可选)- 按状态过滤:pending、processing、completed、failed、timeoutsuccess(可选)- 按成功状态过滤:true(仅已完成)、false(未完成)accountName(可选)- 按账号名称过滤accountId(可选)- 按账号 ID 过滤execution_engine(可选)- 按执行引擎过滤:lite、fullstartDate(可选)- 按创建日期过滤(ISO 8601 格式)endDate(可选)- 按创建日期过滤(ISO 8601 格式)
示例:
bash
# 获取最近完成的任务
curl "https://api.browserman.run/api/tasks?status=completed&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
# 仅获取成功的任务
curl "https://api.browserman.run/api/tasks?success=true&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
# 获取特定账号的任务
curl "https://api.browserman.run/api/tasks?accountName=my-twitter&platform=twitter" \
-H "Authorization: Bearer YOUR_API_KEY"
# 获取日期范围内的任务并分页
curl "https://api.browserman.run/api/tasks?startDate=2024-01-01&endDate=2024-01-31&limit=50&offset=0" \
-H "Authorization: Bearer YOUR_API_KEY"
# 按平台和操作过滤
curl "https://api.browserman.run/api/tasks?platform=twitter&action=createTweet&success=true" \
-H "Authorization: Bearer YOUR_API_KEY"响应:
json
{
"success": true,
"data": {
"tasks": [
{
"id": "task_abc123",
"status": "completed",
"platform": "twitter",
"action": "createTweet",
"execution_engine": "lite",
"params": {
"text": "测试 Browserman API!🚀"
},
"data": {
"tweetId": "1234567890"
},
"created_at": "2024-01-15T10:30:00Z",
"started_at": "2024-01-15T10:30:02Z",
"completed_at": "2024-01-15T10:30:15Z",
"duration_ms": 13000,
"platform_account_id": "acc_xyz789"
}
],
"total": 150,
"limit": 50,
"offset": 0,
"filters": {
"platform": null,
"action": null,
"status": null,
"success": null,
"execution_engine": null,
"accountId": null,
"accountName": null,
"startDate": null,
"endDate": null
}
}
}取消任务
取消待处理或处理中的任务。
端点:
DELETE /api/tasks/:taskId示例:
bash
curl -X DELETE https://api.browserman.run/api/tasks/task_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"任务轮询
由于任务是异步的,你需要轮询状态。推荐模式:
JavaScript 示例
javascript
async function waitForTask(taskId, maxWaitTime = 300000) {
const startTime = Date.now();
const pollInterval = 5000; // 5 秒
while (Date.now() - startTime < maxWaitTime) {
const response = await fetch(
`https://api.browserman.run/api/tasks/${taskId}`,
{
headers: {
'Authorization': `Bearer ${API_KEY}`
}
}
);
const { data } = await response.json();
if (data.state === 'completed') {
return data.result;
} else if (data.state === 'failed') {
throw new Error(data.error.message);
}
await sleep(pollInterval);
}
throw new Error('轮询超时');
}