FB

FB Crawler API

Endpoint

POST/api/external/tasks
Header
Authorization: Bearer <API_TOKEN>
Content-Type: application/json

Request Body

字段类型必填
fb_urlstringFacebook URL
task_typestringcrawl / friend_request,默认 crawl
obsbooleantrue / false
callback_urlstringHTTP/HTTPS URL

Enum

字段含义
task_typecrawl爬取 Facebook 数据
task_typefriend_request发送好友申请
status 任务状态queued等待调度
status 任务状态running执行中
status 任务状态done已完成
status 任务状态failed执行失败
status 任务状态canceled已取消
status 好友状态unknown无好友关系记录
status 好友状态pending好友申请等待确认
status 好友状态accepted已成为好友
status 好友状态not_friends当前不是好友
status 好友状态unavailable无法识别好友操作
status 好友状态failed好友申请执行失败
eventfb_crawler.task_done爬取任务完成
eventfb_crawler.friend_request_done好友申请任务完成
eventfb_crawler.task_failed任务失败

Request Example

cURL
curl -X POST "https://fb-crawler.suxi-svc.com/api/external/tasks" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "fb_url": "https://www.facebook.com/example",
    "task_type": "crawl",
    "obs": true
  }'

Response 200

JSON
{
  "task_id": "6687f9c3f4f7a0a2f4a19e01",
  "task_type": "crawl",
  "status": "queued",
  "fb_url": "https://www.facebook.com/example",
  "obs": true,
  "callback_url": "",
  "result_url": "https://fb-crawler.suxi-svc.com/task-result/A1b2C3d4E5f6"
}

Task Status

GET/api/public/tasks/{token}
cURL
curl "https://fb-crawler.suxi-svc.com/api/public/tasks/A1b2C3d4E5f6"
Response 200
{
  "task_id": "6687f9c3f4f7a0a2f4a19e01",
  "task_type": "crawl",
  "status": "done",
  "fb_url": "https://www.facebook.com/example",
  "result_url": "https://fb-crawler.suxi-svc.com/task-result/A1b2C3d4E5f6",
  "created_at": "2026-07-04T11:58:00+00:00",
  "started_at": "2026-07-04T11:58:01+00:00",
  "finished_at": "2026-07-04T12:00:00+00:00",
  "viewer_url": "https://fb-crawler.suxi-svc.com/viewer.html?file=/api/results/6687fa30f4f7a0a2f4a19e02/data"
}

Retry Failed Task

POST/api/public/tasks/{token}/retry
cURL
curl -X POST "https://fb-crawler.suxi-svc.com/api/public/tasks/A1b2C3d4E5f6/retry"
Response 200
{
  "task_id": "6687f9c3f4f7a0a2f4a19e01",
  "task_type": "crawl",
  "status": "queued",
  "fb_url": "https://www.facebook.com/example",
  "result_url": "https://fb-crawler.suxi-svc.com/task-result/A1b2C3d4E5f6",
  "created_at": "2026-07-04T11:58:00+00:00",
  "started_at": null,
  "finished_at": null
}

Friend Request

POST/api/external/tasks
cURL
curl -X POST "https://fb-crawler.suxi-svc.com/api/external/tasks" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "fb_url": "https://www.facebook.com/example",
    "task_type": "friend_request"
  }'

Friendship Status

GET/api/external/friendships/status
cURL
curl -G "https://fb-crawler.suxi-svc.com/api/external/friendships/status" \
  -H "Authorization: Bearer <API_TOKEN>" \
  --data-urlencode "fb_url=https://www.facebook.com/example"
Response 200
{
  "fb_url": "https://www.facebook.com/example",
  "exists": true,
  "status": "pending",
  "account_id": "6687f9c3f4f7a0a2f4a19e01",
  "refreshed": true,
  "refresh_status": "pending"
}

Callback Success: Crawl

POST callback_url
{
  "event": "fb_crawler.task_done",
  "task_id": "6687f9c3f4f7a0a2f4a19e01",
  "status": "done",
  "fb_url": "https://www.facebook.com/example",
  "result_id": "6687fa30f4f7a0a2f4a19e02",
  "viewer_url": "https://fb-crawler.suxi-svc.com/viewer.html?file=/api/results/6687fa30f4f7a0a2f4a19e02/data",
  "result_data_url": "/api/results/6687fa30f4f7a0a2f4a19e02/data",
  "summary": {},
  "data": {},
  "finished_at": "2026-07-04T12:00:00+00:00"
}

Callback Success: Friend Request

POST callback_url
{
  "event": "fb_crawler.friend_request_done",
  "task_id": "6687f9c3f4f7a0a2f4a19e01",
  "task_type": "friend_request",
  "status": "done",
  "fb_url": "https://www.facebook.com/example",
  "friendship_status": "pending",
  "message": "好友请求已发送,等待对方确认",
  "finished_at": "2026-07-04T12:00:00+00:00"
}

Callback Failed

POST callback_url
{
  "event": "fb_crawler.task_failed",
  "task_id": "6687f9c3f4f7a0a2f4a19e01",
  "status": "failed",
  "fb_url": "https://www.facebook.com/example",
  "error": "失败原因",
  "finished_at": "2026-07-04T12:00:00+00:00"
}

Error Response

HTTPBody
401{"detail":"Unauthorized"}
400{"detail":"fb_url 必填"}
400{"detail":"callback_url 必须是 http/https URL"}
400{"detail":"task_type 仅支持 crawl 或 friend_request"}
404{"detail":"not found"}
409{"detail":"仅失败任务可以重新提交"}