# AntiAkamaiSensorRelayTask

只計算 Akamai `sensor_data`，由你自己的用戶端工作階段送出。適用於 cookie 必須來自送出 sensor 的那個工作階段的情境，例如 queue-it 排隊入場。

## 任務類型

`AntiAkamaiSensorRelayTask`

## 處理方式

非同步 + 輪詢 `/getTaskResult`

## 參數

| 欄位 | 類型 | 必填 | 說明 |
|---|---|---|---|
| `type` | string | 是 | `AntiAkamaiSensorRelayTask` |
| `sessionId` | string | 是 | 由你產生，每一輪傳同一個值 |
| `cookies` | object | 是 | 第一輪必須包含 `_abck` 與 `bm_sz`；之後各輪傳你 POST 之後的完整 cookie |
| `websiteURL` | string | 是 | 頁面 URL，僅第一輪 |
| `sensorUrl` | string | 是 | sensor 指令碼 URL，僅第一輪 |
| `js` | string | 是 | sensor 指令碼內容，僅第一輪 |
| `pageHtml` | string | 否 | 頁面 HTML，僅第一輪 |
| `userAgent` | string | 否 | 你用戶端的 User-Agent |
| `proxy` | string | 否 | 選填，僅第一輪；之後各輪不傳 |
| `nPosts` | int | 否 | 要產生的 sensor 封包數，1–7，預設 4 |

## 最小請求

```json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AntiAkamaiSensorRelayTask",
    "sessionId": "YOUR_SESSION_ID",
    "websiteURL": "https://TARGET/path",
    "sensorUrl": "https://TARGET/SENSOR",
    "js": "...",
    "cookies": {
      "_abck": "...",
      "bm_sz": "..."
    }
  }
}
```

## 成功時的 solution

```json
{
  "sessionId": "YOUR_SESSION_ID",
  "done": false,
  "sensorBody": "...",
  "sensorUrl": "https://TARGET/SENSOR",
  "sensorHeaders": {},
  "contentType": "text/plain;charset=UTF-8"
}
```

## 典型失敗

`ERROR_CAPTCHA_UNSOLVABLE`, `ERROR_BAD_REQUEST`, `ERROR_TASK_NOT_SUPPORTED`

## 注意事項

每一輪回傳 `sensorBody`、`sensorUrl` 與 `sensorHeaders`。請用你自己的工作階段帶上這些標頭，把 `sensorBody` POST 到 `sensorUrl`，再以同一個 `sessionId` 和 POST 後的 cookie 建立下一輪任務。`done` 為 `true` 時工作階段結束，`cookies` 即為最終的 cookie。

Source: https://kaptra.ai/zh-TW/docs/task-types/anti-akamai-sensor-relay
