エンタイトルメント更新通知
Last updated on February 4, 2026
注釈:本資料はAI技術を用いて翻訳されています。
備考
- エンタイトルメント更新通知APIは、AGSプライベートクラウド環境でのみ利用可能で、デフォルトで有効になっています。
- 現在、通知はグローバルにオンまたはオフになっており、ゲームネームスペースごとに設定することはできません。エンタイトルメント更新通知APIの設定についてサポートをリクエストするには、AccelByteテクニカルプロデューサーに連絡するか、AccelByteカスタマーサポートポータルからリクエストを送信してください。
はじめに
AccelByte Gaming Services (AGS) エンタイトルメント更新通知APIは、プレイヤーのエンタイトルメントに関するリアルタイムの更新を提供し、ゲームクライアント外で発生する変更を含め、プレイヤーが迅速に通知されることを保証します。
サポートされている通知タイプ
AGSエンタイトルメント更新通知APIは、entitlementUpdated通知をサポートしています。
更新されたエンタイトルメント通知
以下は、entitlementUpdated通知のサンプルペイロードです。
{
"type": "entitlementUpdated",
"payload": {
"action": "grant",
"data": [
{
"id": "c1a2b3c4d5e6f7890123456789abcdef",
"namespace": "gaming",
"clazz": "ENTITLEMENT",
"type": "CONSUMABLE",
"status": "Active",
"sku": "premium_subscription",
"userId": "u1a2b3c4d5e6f7890123456789abcdef",
"itemId": "i1a2b3c4d5e6f7890123456789abcdef",
"itemNamespace": "items",
"name": "Premium Subscription",
"useCount": 10,
"source": "Purchase",
"startDate": "2023-01-01T00:00:00Z",
"endDate": "2024-01-01T00:00:00Z",
"grantedAt": "2023-01-01T00:00:00Z",
"createdAt": "2023-01-01T00:00:00Z",
"updatedAt": "2023-06-01T00:00:00Z",
"collectionId": "col1a2b3c4d5e6f7890123456789abcdef",
"stackable": true,
"stackedUseCount": 20
}
]
}
}
次の表は、ペイロード内の各フィールドの機能とサポートされている値を説明しています。
| フィールド | タイプ | 説明 | 値 |
|---|---|---|---|
action | String | ウォレットに対して実行されたアクション | Grant: grantEntitlementsまたはgrantUserEntitlementSell: sellまたはpublicSellSplit: publicSplitDelete: これはPlayStationプラットフォームからのアカウント削除アクションによってトリガーされます。 Update: updateEntitlementTransfer: publicTransferConsume: publicConsumeUserEntitlementまたはconsumeUserEntitlementRevoke: revokeEntitlements、revokeAllEntitlements、revokeUserCount、revokeUserEntitlements、revokeUserEntitlement、またはrevokeUserEntitlementByUseCountDisable: disable Enable: enable |
data | Array | エンタイトルメント更新の詳細を含む | |
data.id | String | エンタイトルメントの一意の識別子 | |
data.namespace | String | エンタイトルメントが存在するネームスペース | |
data.clazz | String | エンタイトルメントのクラス | |
data.type | String | エンタイトルメントのタイプ | |
data.status | String | エンタイトルメントのステータス | |
data.sku | String | エンタイトルメントのSKU | |
data.userId | String | エンタイトルメントに関連付けられたユーザーの識別子 | |
data.itemId | String | エンタイトルメントに関連付けられたアイテムの識別子 | |
data.itemNamespace | String | エンタイトルメントに関連付けられたアイテムが存在するネームスペース | |
data.name | String | エンタイトルメントの名前 | |
data.useCount | Integer | エンタイトルメントの残りの使用回数 | |
data.source | String | エンタイトルメントのソース | |
data.startDate | DateTime | エンタイトルメント有効期間の開始日 | |
data.endDate | DateTime | エンタイトルメント有効期間の終了日 | |
data.grantedAt | DateTime | エンタイトルメントが付与された日時 | |
data.createdAt | DateTime | エンタイトルメントが作成された日時 | |
data.updatedAt | DateTime | エンタイトルメントが最後に更新された日時 | |
data.collectionId | String | エンタイトルメントに関連付けられたコレクションの識別子 | |
data.stackable | Boolean | エンタイトルメントがスタック可能かどうかを示す | |
data.stackedUseCount | Integer | エンタイトルメント内のスタックされた使用回数 |
ゲームクライアントとの統合
- OSS
FOnlineSubsystemAccelByte* AccelByteOSS = static_cast<FOnlineSubsystemAccelByte*>(IOnlineSubsystem::Get(ACCELBYTE_SUBSYSTEM));
if(AccelByteOSS == nullptr)
{
// Bail out if AccelByteOSS is not found
return;
}
FOnlineIdentityAccelBytePtr IdentityInterface = StaticCastSharedPtr<FOnlineIdentityAccelByte>(OnlineSubsystem->GetIdentityInterface());
FOnlineEntitlementsAccelBytePtr EntitlementInterface = StaticCastSharedPtr<FOnlineEntitlementsAccelByte>(OnlineSubsystem->GetEntitlementsInterface());
const int32 LocalUserNum = 0;
// Make sure to connect to lobby first
IdentityInterface->ConnectAccelByteLobby(LocalUserNum);
// To Add a delegate
FDelegateHandle OnEntitlementUpdatedHandle = EntitlementInterface->AddOnEntitlementUpdatedNotificationDelegate_Handle(LocalUserNum, FOnEntitlementUpdatedNotificationDelegate::CreateLambda([](int32 InLocalUserNum, const FUniqueNetId& InUserId, const FAccelByteModelsEntitlementUpdatedNotification& Response)
{
// Do something
}));
// To remove the delegate
EntitlementInterface->ClearOnEntitlementUpdatedNotificationDelegate_Handle(LocalUserNum, OnEntitlementUpdatedHandle);