이벤트 보고
API 설명: 다양한 이벤트 유형에 따라 해당 내용을 보고합니다.
보고된 이벤트 유형의 데이터는 시스템의 통계 데이터에 반영됩니다.
📮 요청 정보
요청 URL
POST https://api.upgrade.toolsetlink.com/v1/app/report
요청 헤더
| 매개변수 이름 | 필수 여부 | 유형 | 예제 값 | 설명 |
|---|---|---|---|---|
| X-Timestamp | 예 | string | 2025-02-17T10:34:55+08:00 | RFC3339 형식의 요청 시간 |
| X-Nonce | 예 | string | fc812cc0b9b51e8c | 고유한 랜덤 문자열 (최소 16자) |
| X-AccessKey | 예 | string | mui2W50H1j-OC4xD6PgQag | 비밀 키 AccessKey |
| X-Signature | 예 | string | 3603437250c2df51fc46426ac79d8995 | 요청 서명 서명 규칙 |
| Content-Type | 예 | string | application/json |
🔐 재생 공격 방지 메커니즘
- 서버는 서버 시간과의 타임스탬프 차이가 ±5분을 초과하지 않는지 확인합니다
- 서버는 Nonce 값이 이미 존재하는지 확인합니다 (중복 요청 방지)
요청 본문 매개변수
| 매개변수 이름 | 필수 여부 | 유형 | 예제 값 | 설명 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| eventType | 예 | string | app_start | 이벤트 유형: app_start 애플리케이션 실행 이벤트 app_upgrade_download 애플리케이션 업그레이드-다운로드 이벤트 app_upgrade_upgrade 애플리케이션 업그레이드-업그레이드 이벤트 | ||||||||||||
| appKey | 예 | LOYlLXNy7wV3ySuh0XgtSg | LOYlLXNy7wV3ySuh0XgtSg | 고유한 애플리케이션 식별자, urlKey 및 fileKey와 동일한 값 | ||||||||||||
| timestamp | 예 | string | 2025-02-17T10:34:55+08:00 | 이벤트 발생 시간 | ||||||||||||
| eventData | 예 | 확장 필드 (이벤트 유형 app_start 애플리케이션 실행 이벤트) | ||||||||||||||
| - launchTime | 예 | string | 2025-02-17T10:34:55+08:00 | RFC3339 형식의 애플리케이션 실행 시간 | ||||||||||||
| - versionCode | 예 | int | 10 | 현재 애플리케이션 버전 코드 | ||||||||||||
| - devModelKey | 아니오 | string | stv1 | 고유한 기기 모델 식별자 | ||||||||||||
| - devKey | 아니오 | string | 89c8b3d5f2a74e1b | 고유한 기기 식별자 (MAC 주소를 고유 식별자로 사용할 수 있음) | ||||||||||||
| - target | 아니오 | string | darwin | 기기 시스템 | ||||||||||||
| - arch | 아니오 | string | x86_64 | 기기 아키텍처 | ||||||||||||
| eventData | 예 | 확장 필드 (이벤트 유형 app_upgrade_download 애플리케이션 업그레이드-다운로드 이벤트) | ||||||||||||||
| - downloadVersionCode | 예 | int | 11 | 업그레이드 전략에서 반환된 업그레이드 버전 | ||||||||||||
| - code | 예 | int | 0 |
| ||||||||||||
| - versionCode | 예 | int | 10 | 현재 애플리케이션 버전 코드 | ||||||||||||
| - devModelKey | 아니오 | string | stv1 | 고유한 기기 모델 식별자 | ||||||||||||
| - devKey | 아니오 | string | 89c8b3d5f2a74e1b | 고유한 기기 식별자 (MAC 주소를 고유 식별자로 사용할 수 있음) | ||||||||||||
| - target | 아니오 | string | darwin | 기기 시스템 | ||||||||||||
| - arch | 아니오 | string | x86_64 | 기기 아키텍처 | ||||||||||||
| eventData | 예 | 확장 필드 (이벤트 유형 app_upgrade_upgrade 애플리케이션 업그레이드-업그레이드 이벤트) | ||||||||||||||
| - upgradeVersionCode | 예 | int | 11 | 업그레이드 전략에서 반환된 업그레이드 버전 | ||||||||||||
| - code | 예 | int | 0 |
| ||||||||||||
| - versionCode | 예 | int | 10 | 현재 애플리케이션 버전 코드 | ||||||||||||
| - devModelKey | 아니오 | string | stv1 | 고유한 기기 모델 식별자 | ||||||||||||
| - devKey | 아니오 | string | 89c8b3d5f2a74e1b | 고유한 기기 식별자 (MAC 주소를 고유 식별자로 사용할 수 있음) | ||||||||||||
| - target | 아니오 | string | darwin | 기기 시스템 | ||||||||||||
| - arch | 아니오 | string | x86_64 | 기기 아키텍처 | ||||||||||||
요청 본문 예시
app_download 애플리케이션-다운로드 이벤트 (이 이벤트는 첫 번째 다운로드 API를 호출할 때 자동으로 기록되므로 수동 요청이 필요하지 않습니다)
json
{
"eventType": "app_download",
"timestamp": "2025-02-17T10:34:55+08:00",
"appKey": "SkEgKQ4SyLmzazl31fJnAw"
}app_start 애플리케이션-실행 이벤트
json
{
"eventType": "app_start",
"timestamp": "2025-02-17T10:34:55+08:00",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"eventData": {
"launchTime": "2025-02-17T10:34:55+08:00",
"versionCode": 1,
"target": "darwin",
"arch": "x86_64",
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w"
}
}app_upgrade_get_strategy 애플리케이션 업그레이드-전략 가져오기 이벤트 (이 이벤트는 최신 버전 가져오기 API를 호출할 때 자동으로 기록되므로 수동 요청이 필요하지 않습니다)
json
{
"eventType": "app_upgrade_get_strategy",
"timestamp": "2025-02-17T10:34:55+08:00",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"eventData": {
"versionCode": 1,
"target": "darwin",
"arch": "x86_64",
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w"
}
}app_upgrade_download 애플리케이션 업그레이드-다운로드 이벤트
json
{
"eventType": "app_upgrade_download",
"timestamp": "2025-02-17T10:34:55+08:00",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"eventData": {
"downloadVersionCode": 2,
"code": 0,
"versionCode": 1,
"target": "darwin",
"arch": "x86_64",
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w"
}
}app_upgrade_upgrade 애플리케이션 업그레이드-업그레이드 이벤트
json
{
"eventType": "app_upgrade_upgrade",
"timestamp": "2025-02-17T10:34:55+08:00",
"appKey": "SkEgKQ4SyLmzazl31fJnAw",
"eventData": {
"upgradeVersionCode": 2,
"code": 0,
"versionCode": 1,
"target": "darwin",
"arch": "x86_64",
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w"
}
}📮 응답 정보
성공 응답 본문
json
{
"code": 200,
"msg": "보고 성공"
}일반적인 오류 응답 본문
json
{
"code": 400002,
"msg": "매개변수 누락"
}📊 상태 코드
| HTTP 상태 코드 | code | 시나리오 설명 | 해결 방법 |
|---|---|---|---|
| 200 | 0 | 요청 성공 | |
| 400 | 400001 | 잘못된 요청 | |
| 400 | 400002 | 매개변수 누락 | |
| 400 | 400003 | 잘못된 매개변수 | |
| 400 | 400004 | 잘못된 헤더 | |
| 400 | 400005 | 잘못된 본문 | |
| 401 | 401001 | 인증 실패 | |
| 401 | 401002 | 서명 확인 실패 | |
| 404 | 404001 | 리소스를 찾을 수 없음 | |
| 404 | 404002 | 레코드를 찾을 수 없음 | |
| 404 | 404003 | 처리 방법을 찾을 수 없음 | |
| 404 | 404004 | 요청을 찾을 수 없음 | |
| 500 | 500001 | 서버 내부 오류 | 문의하기 연락처 |
| 500 | 500002 | 서버 내부 데이터 유효성 검사 실패 | 문의하기 연락처 |