# AntiAkamaiSensorRelayTask

Akamai `sensor_data`만 계산하고, 전송은 고객의 클라이언트 세션이 직접 합니다. queue-it 입장처럼 sensor를 보낸 그 세션의 cookie가 필요한 경우에 사용합니다.

## 작업 유형

`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": "..."
    }
  }
}
```

## 성공 결과

```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`를 `sensorUrl`로 POST한 뒤, 같은 `sessionId`와 POST 후의 cookie로 다음 작업을 생성하세요. `done`이 `true`이면 세션이 끝나며 `cookies`에 최종 cookie가 담깁니다.

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