제재 웹 API

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

20 분 소요

에픽 온라인 서비스(Epic Online Services, 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 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
ProductUserIdString제재를 쿼리할 EOS ProductUserId
쿼리 파라미터
이름유형설명필수 여부
actionString

옵션 action 필터입니다. 여러 값 지원: action=action1&action=action2. 최대 항목 수: 5.

아니요

요청 예시

응답

HTTP 응답 200 - OK: 성공.
HTTP 헤더
이름
Content-Typeapplication/json
JSON 페이로드
이름유형설명
elements배열<CompactSanction>활성 제재 목록입니다.

CompactSanction

CompactSanction
이름유형설명
referenceIdString이 제재의 고유 식별자입니다.
timestampint64이 제재가 적용된 초 단위의 에포크 타임스탬프입니다.
actionString이 제재와 관련된 조치 스트링입니다.
expirationTimestampint64이 제재가 만료되는 초 단위의 에포크 타임스탬프입니다. 제재가 영구적인 경우, 값이 null입니다.

외부 서비스에 제재 동기화

정책

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

인증

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

요청

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

요청 예시

응답

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

SanctionEvent

SanctionEvent
이름유형설명
productUserIdString제재받은 사용자의 EOS ProductUserId입니다.
actionString이 제재와 관련된 조치 스트링입니다.
justificationString이 제재와 관련된 정당한 이유 스트링입니다.
sourceString이 제재가 생성된 소스입니다(예: developer-portal).
eventTypeInteger1: 제재가 생성되었습니다.
2: 제재가 업데이트되었습니다.
3: 제재가 삭제되었습니다.
tags배열<String>이 제재와 관련된 태그 목록입니다.
logIdString

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

referenceIdString이 제재의 고유 식별자입니다.
timestampString이 제재가 발생한 시각입니다.
expirationTimestampString이 제재가 만료되는 시각입니다. 제재가 영구적인 경우 null입니다.
batchUuidString이 제재와 관련된 요청의 UUID입니다. 하나의 요청으로 여러 제재를 일괄 생성할 수도 있습니다.
epicAccountNameString이 제재가 적용된 에픽게임즈 계정 이름입니다.
epicAccountIdString이 제재가 적용된 에픽게임즈 계정 ID입니다.
eosClientIdString이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 ID입니다.
eosClientRoleString이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 역할입니다.
createdAtString이 제재 요청이 제재 서비스 백엔드에서 수신된 시각입니다.
updatedAtString이 제재가 업데이트된 시각입니다.
trustedPartnerString개발자 대신 이 제재를 적용한 신뢰할 수 있는 파트너입니다.
deploymentIdString이 제재가 적용되는 EOS deploymentId입니다.
pendingBoolean제재가 현재 보류 중인 경우 True입니다.
automatedBoolean이 제재가 데브 포털 웹사이트에서의 수동 조치가 아닌 다른 방법으로 생성된 경우 True입니다.
metadataSanctionMetadata이 제재와 관련된 임의의 메타데이터 키/값 쌍입니다.
displayNameString제재받은 사용자의 표시명입니다.
identityProviderString제재된 사용자를 인증한 ID 제공자입니다.
accountIdString지정된 identityProvider가 있는 제재받은 사용자의 계정 ID입니다.
modificationsSanctionModification제재 업데이트와 관련된 수정 목록입니다. 이 필드는 eventType2일 때만 설정됩니다.

SanctionMetadata

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

SanctionModification

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

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

정책

사용하는 클라이언트 정책에는 다음 조치 중 하나가 허용되어야 합니다.

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

인증

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

요청

HTTP 요청GET /sanctions/v1/{deploymentId}/active-sanctions
HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
쿼리 파라미터
이름유형설명필수 여부
productUserIdString

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

actionString필수 조치 필터입니다. 여러 값 지원: action=action1&action=action2. 최대 항목 수: 5

요청 예시

응답

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

CompactSanctionWithPuid

CompactSanctionWithPuid
이름유형설명
productUserIdString제품 사용자 ID입니다.
referenceIdString이 제재의 고유 식별자입니다.
timestampString이 제재가 적용된 ISO 8601 형식 시각입니다.
actionString이 제재와 관련된 조치 스트링입니다.
expirationTimestampString이 제재가 만료되는 ISO 8601 형식 시각입니다. 제재가 영구적인 경우 null입니다.

응답 예시

제재 생성

정책

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

인증

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

요청

HTTP 요청POST /sanctions/v1/{deploymentId}/sanctions
HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
JSON 페이로드
유형설명
Array<SanctionPostPayload>생성할 제재 목록입니다.

요청 예시

SanctionPostPayload

SanctionPostPayload
이름유형설명필수 여부
productUserIdString제재받은 사용자의 EOS ProductUserId입니다.
actionString이 제재와 관련된 조치 스트링입니다. 형식: [a-zA-Z0-9_-]+. 최소 길이: 1. 최대 길이: 64.
justificationString이 제재와 관련된 정당한 이유 스트링입니다. 최소 길이: 1 최대 길이: 2048
sourceString

이 제재가 생성된 소스입니다(예: developer-portal). 형식: [a-zA-Z0-9_-]+. 최소 길이: 2. 최대 길이: 64.

tags배열<String>

이 제재와 관련된 태그 목록입니다. 항목은 대소문자를 구분하지 않으며 고유합니다. 항목 형식: [a-zA-Z0-9_-]+. 항목 최대 길이: 16

아니요
pendingBoolean제재가 현재 보류 중인 경우 True입니다.아니요
metadataSanctionMetadata이 제재와 관련된 임의의 메타데이터 키/값 쌍입니다.아니요
displayNameString제재받은 사용자의 표시명입니다. 최대 길이: 64아니요
identityProviderString제재받은 사용자를 인증한 ID 제공자입니다. 최대 길이: 64아니요
accountIdString지정된 identityProvider가 있는 제재받은 사용자의 계정 ID입니다. 최대 길이: 64아니요
durationInteger초 단위의 제재 기간입니다.아니요

응답

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

제재

제재
이름유형설명
productUserIdString제재받은 사용자의 ProductUserId입니다.
actionString이 제재와 관련된 조치 스트링입니다.
justificationString이 제재와 관련된 정당한 이유 스트링입니다.
sourceString이 제재가 생성된 소스입니다(예: developer-portal).
tags배열<String>이 제재와 관련된 태그 목록입니다.
referenceIdString이 제재의 고유 식별자입니다.
timestampString이 제재가 적용된 시각입니다.
expirationTimestampString이 제재가 만료되는 시각입니다. 제재가 영구적인 경우 null입니다.
batchUuidString이 제재와 관련된 요청의 UUID입니다. 하나의 요청으로 여러 제재를 일괄 생성할 수도 있습니다.
epicAccountNameString이 제재가 적용된 에픽게임즈 계정 이름입니다.
epicAccountIdString이 제재가 적용된 에픽게임즈 계정 ID입니다.
eosClientIdString이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 ID입니다.
eosClientRoleString이 제재를 적용하는 데 사용된 클라이언트 크리덴셜 역할입니다.
createdAtString이 제재 요청이 제재 서비스 백엔드에서 수신된 시각입니다. ISO 8601RFC3339에서 정의된 시각이며, 예를 들면 2021-01-01T00:00:00.000Z 와 같은 형식입니다.
updatedAtString이 제재가 업데이트된 시각입니다. ISO 8601RFC3339에서 정의된 시각이며, 예를 들면 2021-01-01T00:00:00.000Z 와 같은 형식입니다.
removedAtString이 제재가 제거된 시각입니다. ISO 8601RFC3339에서 정의된 시각이며, 예를 들면 2021-01-01T00:00:00.000Z 와 같은 형식입니다.
trustedPartnerString개발자 대신 이 제재를 적용한 신뢰할 수 있는 파트너입니다.
deploymentIdString이 제재가 적용되는 EOS deploymentId입니다.
pendingBoolean제재가 현재 보류 중인 경우 True입니다.
automatedBoolean이 제재가 데브 포털 웹사이트에서의 수동 조치가 아닌 다른 방법으로 생성된 경우 True입니다.
metadataSanctionMetadata이 제재와 관련된 임의의 메타데이터 키/값 쌍입니다.
displayNameString제재받은 사용자의 표시명입니다.
identityProviderString제재된 사용자를 인증한 ID 제공자입니다.
accountIdString지정된 identityProvider가 있는 제재받은 사용자의 계정 ID입니다.
statusString이 제재의 상태입니다. 적용 중(Active), 보류 중(Pending), 만료(Expired), 제거(Removed) 등이 있습니다.

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

응답 예시

모든 제재 쿼리

정책

사용하는 클라이언트 정책에는 다음 조치 중 하나가 허용되어야 합니다.

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

인증

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

요청

HTTP 요청GET /sanctions/v1/{deploymentId}/sanctions
HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
쿼리 파라미터
이름유형설명필수 여부
limitInteger반환할 요소의 수입니다. 디폴트는 100입니다.아니요
offsetInteger건너뛸 요소의 수입니다. 디폴트는 0입니다.아니요

요청 예시

응답

HTTP 응답 200 - OK: 성공.
HTTP 헤더
이름
Content-Typeapplication/json
JSON 페이로드
이름유형설명
elements배열<Sanction>createdAt 내림차순으로 정렬된 제재 목록입니다.
paging객체<페이징>페이지네이션 정보

응답 예시

플레이어의 모든 제재 쿼리

정책

사용하는 클라이언트 정책에는 다음 조치 중 하나가 허용되어야 합니다.

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

인증

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

요청

HTTP 요청

GET /sanctions/v1/{deploymentId}/users/{productUserId}

HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
productUserIdString쿼리할 productUserId입니다.
쿼리 파라미터
이름유형설명필수 여부
limitInteger반환할 요소의 수입니다. 디폴트는 100입니다.아니요
offsetInteger건너뛸 요소의 수입니다. 디폴트는 0입니다.아니요

요청 예시

응답

HTTP 응답 200 - OK: 성공.
HTTP 헤더
이름
Content-Typeapplication/json
JSON 페이로드
이름유형설명
elements배열<Sanction>createdAt 내림차순으로 정렬된 제재 목록입니다.
paging객체<페이징>페이지네이션 정보

응답 예시

제재 업데이트

정책

사용하는 클라이언트 정책에는 sanctions:updateSanction 조치가 허용되어야 합니다.

인증

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

요청

HTTP 요청PATCH /sanctions/v1/{deploymentId}/sanctions
HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
JSON 페이로드
유형설명
Array<SanctionPatchPayload>적용할 제재 업데이트 목록입니다.

요청 예시

SanctionPatchPayload

SanctionPatchPayload
이름유형설명필수 여부
referenceIdString이 제재의 고유 식별자입니다.
updatesUpdatableFields업데이트할 필드와 해당 필드의 새 값입니다.

UpdatableFields

UpdatableFields
이름유형설명필수 여부
tags배열<String>

이 제재와 관련된 태그 목록입니다. 항목은 대소문자를 구분하지 않으며 고유합니다. 항목 형식: [a-zA-Z0-9_-]+. 항목 최대 길이: 16

아니요
metadataSanctionMetadata이 제재와 관련된 임의의 메타데이터 키/값 쌍입니다.아니요
justificationString이 제재와 관련된 정당한 이유 스트링입니다. 최소 길이: 1 최대 길이: 2048아니요

응답

HTTP 응답 200 - OK: 성공.
HTTP 헤더
이름
Content-Typeapplication/json
JSON 페이로드
이름유형설명
elements배열<Sanction>업데이트된 제재 목록입니다.

응답 예시

제재 제거

정책

사용하는 클라이언트 정책에는 sanctions:deleteSanction 조치가 허용되어야 합니다.

인증

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

요청

HTTP 요청DELETE /sanctions/v1/{deploymentId}/sanctions
HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
JSON 페이로드
유형설명
SanctionDeletePayload삭제할 제재와 삭제의 정당한 이유입니다.

요청 예시

SanctionDeletePayload

SanctionDeletePayload
이름유형설명필수 여부
referenceIds배열<String>제거될 제재의 고유 식별자입니다.
justificationString이 제재 제거와 관련된 정당한 이유 스트링입니다. 최소 길이: 1 최대 길이: 2048아니요

응답

HTTP 응답 204 - 콘텐츠 없음.

페이징

페이징
이름유형설명
offsetInteger페이지네이션 오프셋입니다.
limitInteger호출당 반환된 제재 수입니다.
totalInteger제재 총수입니다.

제재 이의 제기 생성

정책

사용하는 클라이언트 정책에는 sanctions:createAppealsForAnyUser 조치가 허용되어야 합니다.

인증

이 호출에는 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

요청

HTTP 요청POST /sanctions/v1/{deploymentId}/appeals
HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
JSON 페이로드
유형설명
AppealPostPayload제재 이의 제기 페이로드

요청 예시

AppealPostPayload

AppealPostPayload
이름유형설명필수 여부
referenceIdString이의를 제기하는 제재의 고유 식별자입니다.
reasonInteger이의 제기 사유입니다.
1: 제재가 올바르지 않습니다.
2: 계정 침해입니다.
3: 불공정한 처벌 조치입니다.
4: 용서 요청을 위한 이의 제기입니다.

응답

HTTP 응답 200 - OK: 성공.
HTTP 헤더
이름
Content-Typeapplication/json
JSON 페이로드
유형설명
Appeal생성된 이의 제기

이의 제기

이의 제기
이름유형설명
idString이 이의 제기의 고유 식별자
statusString이의 제기의 상태
referenceIdString이의를 제기하는 제재의 고유 식별자
createdAtString이 이의 제기 요청이 생성된 시각입니다. ISO 8601RFC3339에서 정의된 시각이며, 예를 들면 2021-01-01T00:00:00.000Z 와 같은 형식입니다.
updatedAtString이 이의 제기가 업데이트된 시각입니다. ISO 8601RFC3339에서 정의된 시각이며, 예를 들면 2021-01-01T00:00:00.000Z 와 같은 형식입니다.
reasonInteger이의 제기 사유 코드입니다.

응답 예시

제재 이의 제기 쿼리

정책

사용하는 클라이언트 정책에는 sanctions:findAppealsForAnyUser 조치가 허용되어야 합니다.

인증

이 호출에는 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

요청

HTTP 요청GET /sanctions/v1/{deploymentId}/appeals
HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명필수 여부
deploymentIdString쿼리할 deploymentId입니다.
쿼리 파라미터
이름유형설명필수 여부
limitInteger반환할 요소의 수입니다. 디폴트는 100입니다.아니요
offsetInteger건너뛸 요소의 수입니다. 디폴트는 0입니다.아니요
referenceIdString제재 식별자 필터입니다. 여러 개가 허용됩니다.아니요
statusString이의 제기 상태 필터입니다. 여러 개가 허용됩니다.아니요
productUserIdString제품 사용자 ID 필터입니다. 여러 개가 허용됩니다.아니요

요청 예시

응답

HTTP 응답 200 - OK: 성공.
HTTP 헤더
이름
Content-Typeapplication/json
JSON 페이로드
이름유형설명
elements배열<이의 제기>createdAt에서 내림차순으로 정렬된 이의 제기 목록입니다.
paging객체<페이징>페이지네이션 정보

응답 예시