Sanctions Web APIs

제재 웹 API를 통해 RESTful 서비스에서 제재 인터페이스 기능을 사용합니다.

20 분 소요

에픽 온라인 서비스(EOS) 제재 인터페이스는 사용자 처벌 조치를 관리합니다. 이러한 조치로는 특정 사용자가 제품의 소셜 기능을 이용하는 것을 제한하는 임시적이거나 영구적인 게임플레이, 커뮤니케이션 또는 기타 활동 금지 등이 있습니다. 제품에 대한 징계 조치를 정의하여 사용 사례에 따라 부정적인 행동을 처리할 수 있습니다.

제재 웹 API를 사용하여 신뢰할 수 있는 서버 애플리케이션을 위한 EOS C SDK를 보완할 수 있습니다. 제재 웹 API를 호출하기 전에 웹 API 개요에서 표준 및 인증, 오류 코드를 확인해주세요.

API 엔드포인트

https://api.epicgames.dev/sanctions/

특정 플레이어에게 적용 중인 제재 쿼리

정책

사용하는 클라이언트 정책에는 sanctions:findActiveSanctionsForAnyUser 액션이 허용되어야 합니다.

인증

이 호출은 연결 인터페이스에서 얻은 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

요청

HTTP 요청 GET /sanctions/v1/productUser/{ProductUserId}/active
HTTP 헤더
이름
Authorization Bearer <EOSAccessToken>
Content-Type application/json
경로 파라미터
이름유형설명필수
ProductUserId String 제재를 쿼리할 EOS ProductUserId Yes
쿼리 파라미터
이름유형설명필수 여부
action String

선택적 액션 필터로 다중 값 action=action1&action=action2를 지원합니다. 최대 항목 수: 5.

No

요청 예시

curl "https://api.epicgames.dev/sanctions/v1/productUser/<ProductUserId>/active"

\

-H "accept: application/json" \

-H "Authorization: Bearer <EOSAccessToken>"

응답

HTTP Response 200 - OK: Success.
HTTP 헤더
이름
Content-Type application/json
JSON 페이로드
이름유형설명
배열 Array<CompactSanction> 활성 제재 목록입니다.

CompactSanction

CompactSanction
이름유형설명
referenceId String 이 제재의 고유 식별자입니다.
timestamp int64 이 제재가 적용된 초 단위의 에포크 타임스탬프입니다.
action String 이 제재와 관련된 액션 스트링입니다.
expirationTimestamp int64 이 제재가 만료되는 초 단위의 에포크 타임스탬프입니다. 제재가 영구적인 경우, 값이 null입니다.

외부 서비스에 제재 동기화

정책

사용하는 클라이언트 정책에는 Sanctions:syncSanctionEvents 액션이 허용되어야 합니다.

인증

이 호출은 연결 인터페이스에서 얻은 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

요청

HTTP Request GET /sanctions/v1/sync
HTTP 헤더
이름
Authorization Bearer <EOSAccessToken>
Content-Type application/json
쿼리 파라미터
이름유형설명필수 여부
lastLogId 스트링 이전 호출에서 처리된 마지막 제재 이벤트 엔트리의 선택적 ID입니다. 아니요

요청 예시

`curl "https://api.epicgames.dev/sanctions/v1/sync" \`
`-H "accept: application/json" \`
`-H "Authorization: Bearer <EOSAccessToken>" \`
`-G \`
`-d lastLogId=<LastLogId>`

응답

HTTP Response 200 - OK: Success.
HTTP 헤더
이름
Content-Type application/json
JSON 페이로드
이름유형설명
elements 배열<SanctionEvent> 제재 이벤트 목록입니다.

SanctionEvent

SanctionEvent
이름유형설명
productUserId 스트링 제재받은 사용자의 EOS ProductUserId입니다.
action 스트링 이 제재와 관련된 액션 스트링입니다.
justification 스트링 이 제재와 관련된 정당한 이유 스트링입니다.
source 스트링 이 제재가 생성된 소스입니다(예: ‘developer-portal’)
eventType 정수 1: 제재가 생성되었습니다. 2: 제재가 업데이트되었습니다. 3: 제재가 삭제되었습니다.
tags 배열<String> 이 제재와 관련된 태그 목록입니다.
logId 스트링

SanctionEvent 로그 항목의 고유 식별자입니다. 동기화 API에서 증분 업데이트를 요청하는 데 이 값을 사용할 수 있습니다.

referenceId 스트링 이 제재의 고유 식별자입니다.
timestamp 스트링 이 제재가 발생한 시간입니다.
expirationTimestamp 스트링 제재가 만료되는 시간입니다. 제재가 영구적인 경우 null입니다.
batchUuid 스트링 이 제재와 관련된 요청의 UUID입니다. 하나의 요청으로 여러 제재를 일괄 생성할 수도 있습니다.
epicAccountName 스트링 이 제재가 적용된 에픽게임즈 계정 이름입니다.
epicAccountId 스트링 이 제재가 적용된 에픽게임즈 계정 ID입니다.
eosClientId 스트링 이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 ID입니다.
eosClientRole 스트링 이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 역할입니다.
createdAt 스트링 이 제재 요청이 제재 서비스 백엔드에서 수신된 시간입니다.
updatedAt 스트링 이 제재가 업데이트된 시간입니다.
trustedPartner 스트링 개발자 대신 이 제재를 적용한 신뢰할 수 있는 파트너입니다.
deploymentId 스트링 이 제재가 적용되는 EOS DeploymentId입니다.
pending 부울 제재가 현재 보류 중인 경우 true입니다.
automated 부울 이 제재가 개발자 포털 웹사이트에서 수동 액션이 아닌 다른 방법으로 생성된 경우 true입니다.
metadata SanctionMetadata 이 제재와 관련된 임의의 메타데이터 키/값 쌍입니다.
displayName 스트링 제재받은 사용자의 표시명입니다.
identityProvider 스트링 제재받은 사용자를 인증한 ID 제공자입니다.
accountId 스트링 지정된 identityProvider가 있는 제재받은 사용자의 계정 ID입니다.
modifications SanctionModification 제재 업데이트와 관련된 수정 목록입니다. 이 필드는 eventType이 2일 때만 설정됩니다.

SanctionMetadata

SanctionMetadata
이름유형설명
... ... 메타데이터 키/값 쌍입니다. 최대 항목 수: 25. 항목 키 최대 길이: 64. 항목 값 최대 길이: 128.

SanctionModification

SanctionModification
이름유형설명
updated_at 스트링 이 수정이 이루어진 시간입니다.
... ... 업데이트에서 변경된 사항을 나타내는 SanctionEvent의 추가 키/값 쌍입니다.

여러 플레이어에게 적용 중인 제재 대량 쿼리

정책

사용하는 클라이언트 정책에는 다음 액션 중 하나가 허용되어야 합니다:

  • sanctions:findActiveSanctionsForAnyUser
  • sanctions:findSanctionsForAnyUser
  • sanctions:findAllSanctions
  • sanctions:syncSanctionEvents

인증

이 호출은 연결 인터페이스에서 얻은 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

요청

HTTP 요청 GET /sanctions/v1/{deploymentId}/active-sanctions
HTTP 헤더
이름
Authorization Bearer <EOSAccessToken>
Content-Type application/json
경로 파라미터
이름유형설명필수 여부
deploymentId 스트링 쿼리할 deploymentId입니다.
쿼리 파라미터
이름유형설명필수 여부
productUserId 스트링

필수 제품 사용자 ID 필터입니다. 다중 값을 지원합니다: productUserId=productUserId1&productUserId=productUserId2 최대 항목 수: 100

action 스트링 필수 액션 필터입니다. 다중 값을 지원합니다: action=action1&action=action2 최대 항목 수: 5

요청 예시

curl "https://api.epicgames.dev/sanctions/v1/deploymentId1/active-sanctions?productUserId=productUserId1&productUserId=productUserId2&action=action1&action=action2" \
-H "accept: application/json" \
-H "Authorization: Bearer <EOSAccessToken>"

응답

HTTP Response 200 - OK: Success.
HTTP 헤더
이름
Content-Type application/json
JSON 페이로드
이름유형설명
elements 배열<CompactSanctionWithPuid> 활성 제재 목록입니다.

CompactSanctionWithPuid

CompactSanctionWithPuid
이름유형설명
productUserId 스트링 제품 사용자 ID입니다.
referenceId 스트링 이 제재의 고유 식별자입니다.
timestamp 스트링 이 제재가 적용된 시간(ISO 8601 형식)입니다.
action 스트링 이 제재와 관련된 액션 스트링입니다.
expirationTimestamp 스트링 이 제재가 만료되는 시간(ISO 8601 형식)입니다. 제재가 영구적인 경우 null입니다.

응답 예시

{
"elements": [
{
"productUserId": "productUserId1",
"referenceId": "example_reference_id_1",
"timestamp": "2020-04-15T13:18:25.431762Z",
"action": "action1",
"expirationTimestamp": null
},
{
"productUserId": "productUserId2",
"referenceId": "example_reference_id_2",
"timestamp": "2020-04-15T13:32:44.261711Z",
"action": "action2",
"expirationTimestamp": null
}
]
}

제재 생성

정책

사용하는 클라이언트 정책에는 sanctions:createSanction 액션이 허용되어야 합니다.

인증

이 호출은 연결 인터페이스에서 얻은 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

요청

HTTP 요청 POST /sanctions/v1/{deploymentId}/sanctions
HTTP 헤더
이름
Authorization Bearer <EOSAccessToken>
Content-Type application/json
경로 파라미터
이름유형설명필수 여부
deploymentId 스트링 쿼리할 deploymentId입니다.
JSON 페이로드
유형설명
배열<SanctionPostPayload> 생성할 제재 목록입니다.

요청 예시

curl --request POST "https://api.epicgames.dev/sanctions/v1/deploymentId1/sanctions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <EOSAccessToken>" \
--data-raw '[
{
"action": "EXAMPLE_ACTION",
"duration": 0,
"justification": "example_justification",
"source": "example_source",
"productUserId": "example_product_user_id",
"pending": false,
"automated": true,
"tags": ["example_tag_1", "example_tag_2"],
"metadata": {
"example_metadata_1":"meta_1",
"example_metadata_2":"meta_2"
},
"displayName": "example_display_name",
"identityProvider": "example_identity_provider",
"accountId": "example_account_id"
}
]

SanctionPostPayload

SanctionPostPayload
이름유형설명필수 여부
productUserId 스트링 제재받은 사용자의 EOS ProductUserId입니다.
action 스트링 이 제재와 관련된 액션 스트링입니다. 형식: [a-zA-Z0-9_-]+. 최소 길이: 1. 최대 길이: 64.
justification 스트링 이 제재와 관련된 정당한 이유 스트링입니다. 최소 길이: 1 최대 길이: 2048
source 스트링 이 제재가 생성된 소스입니다(예: ‘developer-portal’). 형식: [a-zA-Z0-9_-]+. 최소 길이: 2. 최대 길이: 64.
tags 배열<String> 이 제재와 관련된 태그 목록입니다. 항목은 대소문자를 구분하지 않으며 고유합니다. 항목 형식: [a-zA-Z0-9_-]+. 항목 최대 길이: 16 아니요
pending 부울 제재가 현재 보류 중인 경우 true입니다. 아니요
metadata SanctionMetadata 이 제재와 관련된 임의의 메타데이터 키/값 쌍입니다. 아니요
displayName 스트링 제재받은 사용자의 표시명입니다. 최대 길이: 64 아니요
identityProvider 스트링 제재받은 사용자를 인증한 ID 제공자입니다. 최대 길이: 64 아니요
accountId 스트링 지정된 identityProvider가 있는 제재받은 사용자의 계정 ID입니다. 최대 길이: 64 아니요
duration 정수 초 단위의 제재 기간입니다. 아니요

응답

HTTP Response 200 - OK: Success.
HTTP 헤더
이름
Content-Type application/json
JSON 페이로드
이름유형설명
elements 배열<Sanction> 생성된 제재 목록입니다.

Sanction

Sanction
이름유형설명
productUserId 스트링 제재받은 사용자의 EOS ProductUserId입니다.
action 스트링 이 제재와 관련된 액션 스트링입니다.
justification 스트링 이 제재와 관련된 정당한 이유 스트링입니다.
source 스트링 이 제재가 생성된 소스입니다(예: ‘developer-portal’)
tags 배열<String> 이 제재와 관련된 태그 목록입니다.
referenceId 스트링 이 제재의 고유 식별자입니다.
timestamp 스트링 이 제재가 적용된 시간입니다.
expirationTimestamp 스트링 제재가 만료되는 시간입니다. 제재가 영구적인 경우 null입니다.
batchUuid 스트링 이 제재와 관련된 요청의 UUID입니다. 하나의 요청으로 여러 제재를 일괄 생성할 수도 있습니다.
epicAccountName 스트링 이 제재가 적용된 에픽게임즈 계정 이름입니다.
epicAccountId 스트링 이 제재가 적용된 에픽게임즈 계정 ID입니다.
eosClientId 스트링 이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 ID입니다.
eosClientRole 스트링 이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 역할입니다.
createdAt 스트링 이 제재 요청이 제재 서비스 백엔드에서 수신된 시간입니다. ISO 8601RFC3339에서 정의된 시간으로 예를 들면 2021-01-01T00:00:00.000Z입니다.
updatedAt 스트링 이 제재가 업데이트된 시간입니다. ISO 8601RFC3339에서 정의된 시간으로 예를 들면 2021-01-01T00:00:00.000Z입니다.
removedAt 스트링 이 제제가 제거된 시간입니다. ISO 8601RFC3339에서 정의된 시간으로 예를 들면 2021-01-01T00:00:00.000Z입니다.
trustedPartner 스트링 개발자 대신 이 제재를 적용한 신뢰할 수 있는 파트너입니다.
deploymentId 스트링 이 제재가 적용되는 EOS DeploymentId입니다.
pending 부울 제재가 현재 보류 중인 경우 true입니다.
automated 부울 이 제재가 개발자 포털 웹사이트에서 수동 액션이 아닌 다른 방법으로 생성된 경우 true입니다.
metadata SanctionMetadata 이 제재와 관련된 임의의 메타데이터 키/값 쌍입니다.
displayName 스트링 제재받은 사용자의 표시명입니다.
identityProvider 스트링 제재된 사용자를 인증한 ID 제공자입니다.
accountId 스트링 지정된 identityProvider가 있는 제재받은 사용자의 계정 ID입니다.
status 스트링 이 제재의 상태입니다. 적용 중(Active), 보류 중(Pending), 만료(Expired), 제거(Removed) 등이 있습니다.

참고: 시간은 ISO 8601RFC3339에서 정의되며, 예를 들면 2021-01-01T00:00:00.000Z입니다.

응답 예시

{
"elements": [
{
"referenceId": "7cd6de84-b5be-405a-8fa1-55c11c821a1e",
"timestamp": "2022-03-02T19:54:42.402355Z",
"expirationTimestamp": null,
"batchUuid": "645eba40-dd53-4cea-95d3-3e22459bb84d",
"epicAccountName": null,
"epicAccountId": "",
"eosClientId": "example_client_id",
"eosClientRole": "",
"createdAt": "2022-03-02T19:54:42.402243Z",
"updatedAt": null,
"trustedPartner": null,
"metadata": {
"example_metadata_1": "meta_1",
"example_metadata_2": "meta_2"
},
"deploymentId": "deploymentId1",
"productUserId": "example_product_user_id",
"pending": false,
"automated": true,
"source": "example_source",
"justification": "example_justification",
"tags": ["example_tag_1", "example_tag_2"],
"action": "EXAMPLE_ACTION",
"displayName": "example_display_name",
"identityProvider": "example_identity_provider",
"accountId": "example_account_id",
"status": "Active"
}
]
}

모든 제재 쿼리

정책

사용하는 클라이언트 정책에는 다음 액션 중 하나가 허용되어야 합니다:

  • sanctions:findSanctionsForAnyUser
  • sanctions:findAllSanctions
  • sanctions:syncSanctionEvents

인증

이 호출은 연결 인터페이스에서 얻은 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

요청

HTTP 요청 GET /sanctions/v1/{deploymentId}/sanctions
HTTP 헤더
이름
Authorization Bearer <EOSAccessToken>
Content-Type application/json
경로 파라미터
이름유형설명필수 여부
deploymentId 스트링 쿼리할 deploymentId입니다.
쿼리 파라미터
이름유형설명필수 여부
limit 정수 반환할 엘리먼트의 수입니다. 기본값은 100입니다. 아니요
offset 정수 건너뛸 엘리먼트의 수입니다. 기본값은 0입니다. 아니요

요청 예시

curl --request GET "https://api.epicgames.dev/sanctions/v1/deploymentId1/sanctions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <EOSAccessToken>"

응답

HTTP Response 200 - OK: Success.
HTTP Headers
이름
Content-Type application/json
JSON 페이로드
이름유형설명
elements 배열<Sanction> createdAt 내림차순으로 정렬된 제재 목록입니다.
paging 오브젝트<Paging> 페이지네이션 정보입니다.

응답 예시