Sanctions Web APIs

Sanctions Web API を使用すると、RESTful サービスで Sanctions インターフェース機能を使用することができます。

20 分で読めます

Epic Online Services (EOS) Sanctions インターフェース は、ユーザーに対して講じる懲戒処分を管理します。懲戒処分には、特定のユーザーに対して 製品 の社会的側面を制限するゲームプレイ、通信、またはその他の一時的または永続的な禁止が含まれることがあります。ユースケースに基づいて好ましくない行動に対処するため、製品の懲戒処分を定義します。

Sanctions Web API を使用すると、信頼できるサーバー アプリケーションの EOS C SDK を補完することができます。Sanctions Web API を呼び出す前に、「Web API の概要」で標準、認証、エラー コードについて確認してください。

API エンドポイント

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

特定のプレイヤーに対して有効な処罰をクエリする

ポリシー

使用するクライアント ポリシーで、sanctions:findActiveSanctionsForAnyUser アクションが許可されている必要があります。

認証

この呼び出しには、Connect インターフェース から取得した EOS クライアント認証アクセス トークンを使用した Bearer トークン認証が必要です。

リクエスト

HTTP リクエスト GET /sanctions/v1/productUser/{ProductUserId}/active
HTTP ヘッダ
名前
Authorization Bearer <EOSAccessToken>
Content-Type application/json
パス パラメータ
名前説明必須
ProductUserId 文字列 処罰をクエリする EOS ProductUserId 必須
クエリ パラメータ
名前説明必須
action 文字列

任意のアクション フィルタ。次の複数の値をサポートしています。action=action1&action=action2 最大項目数:5.

任意

リクエストの例

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 ペイロード
名前説明
elements Array<CompactSanction> 有効な処罰のリスト

CompactSanction

CompactSanction
名前説明
referenceId String この処罰の一意の識別子
timestamp int64 この処罰が課されたときのエポック タイムスタンプ (秒)
action 文字列 この処罰に関連付けられているアクションの文字列
expirationTimestamp int64 この処罰の有効期限が切れるときのエポック タイムスタンプ (秒)、または処罰が永続的である場合は null

処罰を外部サービスに同期する

ポリシー

使用するクライアント ポリシーで、Sanctions:syncSanctionEvents アクションが許可されている必要があります。

認証

この呼び出しには、Connect インターフェース から取得した EOS クライアント認証アクセス トークンを使用した Bearer トークン認証が必要です。

リクエスト

HTTP リクエスト 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 Array<SanctionEvent> 処罰イベントのリスト

SanctionEvent

SanctionEvent
名前説明
productUserId 文字列 処罰を受けたユーザーの EOS ProductUserId
action 文字列 この処罰に関連付けられているアクションの文字列
justification 文字列 この処罰に関連付けられている理由の文字列
source 文字列 この処罰を作成したソース、例:'developer-portal'
eventType 整数 1:処罰が作成された 2:処罰が更新された 3:処罰が削除された
tags Array<String> この処罰に関連付けられているタグのリスト
logId 文字列

SanctionEvent ログ エントリの一意の識別子。この値を使用して、sync API からの増分更新をリクエストすることができます 。

referenceId 文字列 この処罰の一意の識別子
timestamp 文字列 この処罰イベントが発生した時間
expirationTimestamp 文字列 この有効期限が切れる時間、または処罰が永続的である場合は null
batchUuid 文字列 この処罰に関連付けられているリクエストの UUID。1 つのリクエストが、1 つのバッチとして複数の処罰を作成する場合があります。
epicAccountName 文字列 この処罰を課した Epic Games アカウントの名前
epicAccountId 文字列 この処罰を課した Epic Games アカウントの ID
eosClientId 文字列 この処罰を課すために使用されたクライアントの資格情報 ID
eosClientRole 文字列 この処罰を課すために使用されたクライアントの資格情報のロール。
createdAt 文字列 Sanctions サービス バックエンドがこの処罰リクエストを受信した時間。
updatedAt 文字列 この処罰が更新された時間
trustedPartner 文字列 デベロッパーに代わってこの処罰を課した信頼できるパートナー
deploymentId 文字列 この処罰が適用される EOS DeploymentId
pending ブール この処罰が現在保留中の場合は true
automated ブール この処罰がデベロッパー ポータル Web サイトの手動アクション以外の方法で作成された場合は 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

Authorization

この呼び出しには、Connect インターフェース から取得した 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 Array<CompactSanctionWithPuid> 有効な処罰のリスト

CompactSanctionWithPuid

CompactSanctionWithPuid
名前説明
productUserId String 製品ユーザー 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 アクションが許可されている必要があります。

認証

この呼び出しには、Connect インターフェース から取得した EOS クライアント認証アクセス トークンを使用した Bearer トークン認証が必要です。

リクエスト

HTTP リクエスト POST /sanctions/v1/{deploymentId}/sanctions
HTTP ヘッダ
名前
Authorization Bearer <EOSAccessToken>
Content-Type application/json
パス パラメータ
名前説明必須
deploymentId 文字列 クエリする deploymentId 必須
JSON ペイロード
説明
Array<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 Array<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 Array<Sanction> 作成された処罰のリスト

Sanction

Sanction
名前説明
productUserId 文字列 処罰を受けたユーザーの EOS ProductUserId
action 文字列 この処罰に関連付けられているアクションの文字列
justification 文字列 この処罰に関連付けられている理由の文字列
source 文字列 この処罰を作成したソース、例:'developer-portal'
tags Array<String> この処罰に関連付けられているタグのリスト
referenceId 文字列 この処罰の一意の識別子
timestamp 文字列 この処罰が課された時間
expirationTimestamp 文字列 この有効期限が切れる時間、または処罰が永続的である場合は null
batchUuid 文字列 この処罰に関連付けられているリクエストの UUID。1 つのリクエストが、1 つのバッチとして複数の処罰を作成する場合があります。
epicAccountName 文字列 この処罰を課した Epic Games アカウントの名前
epicAccountId 文字列 この処罰を課した Epic Games アカウントの ID
eosClientId 文字列 この処罰を課すために使用されたクライアントの資格情報 ID
eosClientRole 文字列 この処罰を課すために使用されたクライアントの資格情報のロール。
createdAt 文字列 Sanctions サービス バックエンドがこの処罰リクエストを受信した時間。時間は、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 ブール この処罰がデベロッパー ポータル Web サイトの手動アクション以外の方法で作成された場合は 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

認証

この呼び出しには、Connect インターフェース から取得した 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>"

Response