メインコンテンツまでスキップ

システム受信箱通知を管理する

Last updated on July 14, 2026

注釈:本資料はAI技術を用いて翻訳されています。

概要​

AccelByte Gaming Services (AGS) チャットには、プレイヤーの受信箱に永続的なシステム通知を送信できるシステム受信箱通知機能があります。送信できるシステム受信箱通知の例としては、ゲーム内ニュース、ゲーム内メール、引き換えコード、ペナルティ通知、プレイヤーレポート通知、メンテナンススケジュール、開催中のイベントなどが挙げられます。必要に応じて、プレイヤーの受信箱から通知を削除したり、送信を取り消したりすることもできます。

この記事では、システム受信箱通知を管理および統合する方法について説明します。

前提条件​

管理者がシステム受信箱通知を管理するには、以下の権限が必要です:

権限アクション使用方法
ADMIN:NAMESPACE:{namespace}:CHAT:INBOXCREATE, READ, UPDATE, DELETE通知を作成、クエリ、編集、削除するため。
ADMIN:NAMESPACE:{namespace}:CHAT:INBOXCREATE, READ, UPDATE, DELETEシステムメッセージを作成するため。

システムメッセージページにアクセスする​

以下のセクションで説明する管理オプションおよび構成オプションにアクセスするには、AGS 管理ポータルにログインし、ゲームネームスペースのダッシュボードに移動します。次に、ソーシャル > チャット > システムメッセージ に移動します。

システム受信箱通知を管理する​

以下のセクションでは、システム受信箱通知の管理について詳しく説明します。

通知を作成、保存、送信する​

新しいシステム受信箱通知を作成して送信するには、以下の手順に従います:

  1. システムメッセージ ページで、+ 新規作成 をクリックします。

  2. 新しいメッセージを作成 ページにメッセージの内容、受信者、通知の詳細を入力します。

  3. 後でメッセージを送信する場合は 下書きとして保存 をクリックするか、すぐにメッセージを送信する場合は 送信 をクリックします。

通知の送信を取り消す​

  1. システムメッセージ ページで、システムメッセージリスト セクションに一覧表示されている送信済み通知の中から、送信を取り消したい通知を見つけます。

  2. 送信済み通知の横にある アクション 列の省略記号メニューをクリックします。次に、送信取り消し をクリックします。

  3. 確認ボックスで、UNSEND と入力し、送信取り消し をクリックして確認します。

下書き通知を表示、編集、送信する​

  1. システムメッセージ ページで、システムメッセージリスト セクションに一覧表示されている下書き通知の中から、表示、編集、または送信したい通知を見つけます。

  2. 下書き通知の横にある アクション 列の 表示 オプションをクリックします。

  3. 情報を確認し、必要に応じて変更を加えます。

  4. 送信せずにメッセージを更新する場合は 下書きとして保存 をクリックするか、すぐにメッセージを送信する場合は 送信 をクリックします。

システム受信箱通知をゲームクライアントに統合する​

以下の例は、システム受信箱通知をゲームクライアントに統合する方法を示しています:

// API クライアントを作成し、ログインして、AGS チャットに接続します
FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient(TEXT("0"));
ApiClient->User.LoginWithUsername(TEXT("user+a@example.com"), TEXT("Password321"),
FVoidHandler::CreateLambda([]()
{
UE_LOG(LogTemp, Log, TEXT("ユーザー A のログインに成功しました"));
}),
FErrorHandler::CreateLambda([](int Code, FString const& Message)
{
UE_LOG(LogTemp, Log, TEXT("ユーザー A のログインに失敗しました"));
}));
ApiClient->Chat.Connect();
// 受信システムメッセージ通知のデリゲートを設定します
ApiClient->Chat.SetSystemMessageNotifDelegate(
Api::Chat::FSystemMessageNotif::CreateLambda([](const FAccelByteModelsChatSystemMessageNotif&
Notif)
{
UE_LOG(LogTemp, Log, TEXT("システムメッセージを取得しました: %s %s %s"), *Notif.MessageId, *Notif.Message,
*Notif.Category);
}));
// システムメッセージをクエリします
{
FAccelByteModelsQuerySystemMessagesResponse Result;
Chat::FQuerySystemMessageResponse OnSuccess = Chat::FQuerySystemMessageResponse::CreateLambda(
[&Result](const FAccelByteModelsQuerySystemMessagesResponse& Response)
{
Result = Response;
});
FErrorHandler OnError = FErrorHandler::CreateLambda([](int32 Code, const FString& Message)
{
UE_LOG(LogTemp, Error, TEXT("チャットシステムメッセージのクエリに失敗しました %d, %s"), Code, *Message);
});
ApiClient->Chat.QuerySystemMessage(OnSuccess, OnError);
}
// システムメッセージを更新します(既読/未読をマークするか、メッセージを保持します)
{
FAccelByteModelsActionUpdateSystemMessage Action;
Action.ID = TEXT("message-id");
Action.Read = EAccelByteOptionalBool::NO; // メッセージを未読としてマークします
Action.Keep = EAccelByteOptionalBool::YES; // メッセージを受信箱に保持するようマークします
Chat::FUpdateSystemMessagesResponse OnSuccess =
Chat::FUpdateSystemMessagesResponse::CreateLambda(
[](const FAccelByteModelsUpdateSystemMessagesResponse& Response)
{
UE_LOG(LogTemp, Log, TEXT("システムメッセージの更新に成功しました"));
});
FErrorHandler OnError = FErrorHandler::CreateLambda([](int32 Code, const FString& Message)
{
UE_LOG(LogTemp, Error, TEXT("チャットシステムメッセージの更新に失敗しました %d, %s"), Code, *Message);
});
ApiClient->Chat.UpdateSystemMessages({Action}, OnSuccess, OnError);
}
// システムメッセージを削除します
{
Chat::FDeleteSystemMessagesResponse OnSuccess =
Chat::FDeleteSystemMessagesResponse::CreateLambda(
[](const FAccelByteModelsDeleteSystemMessagesResponse& Response)
{
UE_LOG(LogTemp, Log, TEXT("システムメッセージの削除に成功しました"));
});
FErrorHandler OnError = FErrorHandler::CreateLambda([](int32 Code, const FString& Message)
{
UE_LOG(LogTemp, Error, TEXT("チャットシステムメッセージの削除に失敗しました %d, %s"), Code, *Message);
});
ApiClient->Chat.DeleteSystemMessages({TEXT("message-id")}, OnSuccess, OnError);
}
// システムメッセージの統計を取得します
{
FAccelByteGetSystemMessageStatsResponse Result;
Chat::FGetSystemMessageStatsResponse OnSuccess =
Chat::FGetSystemMessageStatsResponse::CreateLambda(
[&Result](const FAccelByteGetSystemMessageStatsResponse& Response)
{
Result = Response;
});
FErrorHandler OnError = FErrorHandler::CreateLambda([](int32 Code, const FString& Message)
{
UE_LOG(LogAccelByteChatTest, Error, TEXT("システムメッセージ統計の取得に失敗しました %d,
%s"), Code, *Message);
});
ApiClient->Chat.GetSystemMessageStats(OnSuccess, OnError);
}