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

ゲームにグループを統合する

Last updated on February 4, 2026

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

概要

AccelByte Gaming Services (AGS) グループは、プレイヤーがグループを形成し、集まり、交流し、共通の目標を達成するために協力できるようにすることで、プレイヤー間の交流を促進し、全体的なプレイヤーの定着率を向上させる方法をゲーム開発者に提供します。このガイドでは、Client SDKまたはExtend SDKを使用してAGSグループサービスでゲームにグループを統合する方法を学習します。

この記事では、以下の方法について説明します:

  • Client SDKまたはExtend SDKを使用してゲームにグループを統合する
  • プレイヤーがグループを管理できるようにする
  • グループ情報を取得する
  • プレイヤーがグループと対話できるようにする
  • プレイヤーにグループ関連の通知を送信する

前提条件

以下へのアクセスが必要です:

  • AGS管理ポータル
  • AccelByte Unreal SDK、Unity SDKまたはExtend SDK(必要な権限を含む):
    • クライアントID
    • クライアントシークレット
  • 参照用のAGSグループAPIドキュメント

グループを管理する

以下のセクションでは、ゲームにグループ管理を統合する方法について詳しく説明します。

新しいグループを作成する

名前空間にグループ設定がある場合、プレイヤーが新しいグループを作成できるようにすることができます。グループを作成したプレイヤーは、デフォルトでグループ管理者になります。次の関数を使用して新しいグループを作成します:

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FAccelByteModelsCreateGroupRequest RequestContent = {};
RequestContent.ConfigurationCode = "YourGroupConfigurationCode";
RequestContent.GroupName = "YourGroupName";
RequestContent.GroupDescription = "YourGroupDescription";
RequestContent.GroupMaxMember = 50;
RequestContent.GroupType = EAccelByteGroupType::PUBLIC;

ApiClient->Group.CreateGroup(RequestContent, THandler<FAccelByteModelsGroupInformation>::CreateLambda([](const FAccelByteModelsGroupInformation& Result)
{
// Do something if CreateGroup succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if CreateGroup fails
}));

グループ情報を更新する

グループ名、アイコン、説明、地域、種類など、特定のグループに関連付けられている情報を更新できます。管理者の役割を持つメンバーのみがグループの情報を更新できます。次の関数を使用してグループ情報を更新します:

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";
bool bCompletelyReplace = true;

FAccelByteModelsGroupUpdatable UpdateContent = {};
UpdateContent.GroupName = "UpdatedGroupName";
UpdateContent.GroupDescription = "UpdatedGroupDescription";
UpdateContent.GroupType = EAccelByteGroupType::PRIVATE;

ApiClient->Group.UpdateGroup(GroupId, bCompletelyReplace, UpdateContent, THandler<FAccelByteModelsGroupInformation>::CreateLambda([](const FAccelByteModelsGroupInformation& Result)
{
// Do something if UpdateGroup succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if UpdateGroup fails
}));

グループのカスタム属性を更新する

この関数を使用して、グループのカスタム属性を個別に更新できます。グループ情報の更新と同様に、管理者の役割を持つメンバーのみがグループのカスタム属性を更新できます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

FJsonObjectWrapper UpdatedCustomAttributes;
UpdatedCustomAttributes.JsonObject = MakeShared<FJsonObject>();
UpdatedCustomAttributes.JsonObject->SetStringField("Attribute String Key", "Updated Attribute");

FAccelByteModelsUpdateGroupCustomAttributesRequest UpdateContent = {};
UpdateContent.CustomAttributes = UpdatedCustomAttributes;

ApiClient->Group.UpdateGroupCustomAttributes(GroupId, UpdateContent, THandler<FAccelByteModelsGroupInformation>::CreateLambda([](const FAccelByteModelsGroupInformation& Result)
{
// Do something if UpdateGroupCustomAttributes succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if UpdateGroupCustomAttributes fails
}));

グループ情報を表示する

以下のセクションでは、さまざまな種類のグループ情報を表示する方法について詳しく説明します。

グループのリストを取得する

プレイヤーがグループ名または地域を使用して検索することで、プレイヤーが作成した利用可能なグループを検索できるようにすることができます。結果はページに表示され、offsetとlimitパラメータを使用してリストを制限できます。次の関数を使用してグループのリストを取得します:

注記

以下の関数は、PUBLICおよびOPENグループのみを表示します。グループの種類の詳細については、グループとの対話に関するセクションを参照してください。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FAccelByteModelsGetGroupListRequest FilterContent = {};
FilterContent.GroupName = "YourGroupName";
FilterContent.GroupRegion = "US";

ApiClient->Group.GetGroupList(FilterContent, THandler<FAccelByteModelsGetGroupListResponse>::CreateLambda([](const FAccelByteModelsGetGroupListResponse& Result)
{
// Do something if GetGroupList succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetGroupList fails
}));

グループIDでグループ情報を取得する

プレイヤーにグループに関するより明確な情報を提供するために、次の関数を使用してグループIDを使用してグループに関する情報を取得できます:

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

ApiClient->Group.GetGroup(GroupId, THandler<FAccelByteModelsGroupInformation>::CreateLambda([](const FAccelByteModelsGroupInformation& Result)
{
// Do something if GetGroup succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetGroup fails
}));

ユーザーIDでグループ情報を取得する

次の関数を使用して、ユーザーIDを使用してプレイヤーがグループ情報を取得できるようにすることができます:

注記

リクエストしたプレイヤーがどのグループにも属していない場合、返されるステータスはErrorCode.UserNotBelongToAnyGroupになり、プレイヤーはグループに招待できるようになります。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString UserId = "YourUserId";

ApiClient->Group.GetUserGroupInfoByUserId(UserId, THandler<FAccelByteModelsGetUserGroupInfoResponse>::CreateLambda([](const FAccelByteModelsGetUserGroupInfoResponse& Result)
{
// Do something if GetUserGroupInfoByUserId succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetUserGroupInfoByUserId fails
}));

プレイヤーのグループ情報を取得する

特定のユーザーIDを持つユーザーのグループ情報をプレイヤーが取得できるようにすることができます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString UserId = "YourUserId";

ApiClient->Group.GetUserGroupInfoByUserId(UserId, THandler<FAccelByteModelsGetUserGroupInfoResponse>::CreateLambda([](const FAccelByteModelsGetUserGroupInfoResponse& Result)
{
// Do something if GetUserGroupInfoByUserId succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetUserGroupInfoByUserId fails
}));

グループのメンバーリストを取得する

プレイヤーが特定のグループ内のメンバーのリストを取得できるようにすることができます。次の関数を使用して、グループIDを使用してグループのメンバーリストを取得します。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

FAccelByteModelsGetGroupMembersListByGroupIdRequest RequestContent = {};
RequestContent.Limit = 100;
RequestContent.Offset = 0;
RequestContent.SortBy = EAccelByteGroupListSortBy::ASCENDING;

ApiClient->Group.GetGroupMembersListByGroupId(GroupId, RequestContent, THandler<FAccelByteModelsGetGroupMemberListResponse>::CreateLambda([](const FAccelByteModelsGetGroupMemberListResponse& Result)
{
// Do something if GetGroupMembersListByGroupId succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetGroupMembersListByGroupId fails
}));

グループと対話する

以下のセクションでは、プレイヤーとグループの対話について詳しく説明します。

グループに参加する

プレイヤーはOPENまたはPUBLICグループへの参加をリクエストできます。各グループの種類には異なる動作があります:

  • OPENグループでは、プレイヤーが自動的に参加できます。
  • PUBLICグループでは、プレイヤーがグループに参加する前にグループ管理者が承認する必要がある参加リクエストを行う必要があります。

次の関数を使用して、プレイヤーが特定のグループに参加できるようにします。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

ApiClient->Group.JoinGroup(GroupId, THandler<FAccelByteModelsJoinGroupResponse>::CreateLambda([](const FAccelByteModelsJoinGroupResponse& Result)
{
// Do something if JoinGroup succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if JoinGroup fails
}));

参加リクエストをキャンセルする

プレイヤーがPUBLICグループへの参加をリクエストした後、そのリクエストをキャンセルできます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

ApiClient->Group.CancelJoinGroupRequest(GroupId, THandler<FAccelByteModelsMemberRequestGroupResponse>::CreateLambda([](const FAccelByteModelsMemberRequestGroupResponse& Result)
{
// Do something if CancelJoinGroupRequest succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if CancelJoinGroupRequest fails
}));

グループを離れる

プレイヤーがグループを離れることができるようにするには、次の関数を使用できます:

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

ApiClient->Group.LeaveGroup(THandler<FAccelByteModelsMemberRequestGroupResponse>::CreateLambda([](const FAccelByteModelsMemberRequestGroupResponse& Result)
{
// Do something if LeaveGroup succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if LeaveGroup fails
}));

プレイヤーをグループに招待する

グループ管理者は、プレイヤーを自分のグループに参加するように招待できます。PRIVATEグループは、この関数を使用して新しいメンバーを追加できます。プレイヤーは、グループに参加する前に招待を受け入れる必要があります。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString UserId = "YourUserId";

ApiClient->Group.InviteUserToGroup(UserId, THandler<FAccelByteModelsMemberRequestGroupResponse>::CreateLambda([](const FAccelByteModelsMemberRequestGroupResponse& Result)
{
// Do something if InviteUserToGroup succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if InviteUserToGroup fails
}));

グループメンバーを削除/キックする

グループ管理者は、グループメンバーをグループから削除(キック)することもできます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString UserId = "YourUserId";

ApiClient->Group.KickGroupMember(UserId, THandler<FAccelByteModelsKickGroupMemberResponse>::CreateLambda([](const FAccelByteModelsKickGroupMemberResponse& Result)
{
// Do something if KickGroupMember succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if KickGroupMember fails
}));

グループ招待リクエストのリストを取得する

プレイヤーは、グループ招待リクエストのリストを取得して、これらの招待を受け入れるか拒否することができます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FAccelByteModelsLimitOffsetRequest RequestContent = {};
RequestContent.Limit = 100;
RequestContent.Offset = 0;

ApiClient->Group.GetGroupInvitationRequests(RequestContent, THandler<FAccelByteModelsGetMemberRequestsListResponse>::CreateLambda([](const FAccelByteModelsGetMemberRequestsListResponse& Result)
{
// Do something if GetGroupInvitationRequests succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetGroupInvitationRequests fails
}));

グループ招待リクエストを受け入れる

招待リストを取得した後、プレイヤーは招待を受け入れることができます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

ApiClient->Group.AcceptGroupInvitation(GroupId, THandler<FAccelByteModelsMemberRequestGroupResponse>::CreateLambda([](const FAccelByteModelsMemberRequestGroupResponse& Result)
{
// Do something if AcceptGroupInvitation succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if AcceptGroupInvitation fails
}));

グループ招待リクエストを拒否する

プレイヤーは、任意の招待リクエストを拒否できます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

ApiClient->Group.RejectGroupInvitation(GroupId, THandler<FAccelByteModelsMemberRequestGroupResponse>::CreateLambda([](const FAccelByteModelsMemberRequestGroupResponse& Result)
{
// Do something if RejectGroupInvitation succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if RejectGroupInvitation fails
}));

グループメンバー参加リクエストのリストを取得する

グループ管理者は、グループメンバー参加リクエストのリストを取得して、それらを承認または拒否できます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString GroupId = "YourGroupId";

FAccelByteModelsLimitOffsetRequest RequestContent = {};
RequestContent.Limit = 100;
RequestContent.Offset = 0;

ApiClient->Group.GetGroupJoinRequests(GroupId, RequestContent, THandler<FAccelByteModelsGetMemberRequestsListResponse>::CreateLambda([](const FAccelByteModelsGetMemberRequestsListResponse& Result)
{
// Do something if GetGroupJoinRequests succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if GetGroupJoinRequests fails
}));

グループメンバー参加リクエストを受け入れる

参加リクエストのリストを取得した後、グループ管理者はそれらをグループに受け入れることができます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString UserId = "YourUserId";

ApiClient->Group.AcceptGroupJoinRequest(UserId, THandler<FAccelByteModelsMemberRequestGroupResponse>::CreateLambda([](const FAccelByteModelsMemberRequestGroupResponse& Result)
{
// Do something if AcceptGroupJoinRequest succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if AcceptGroupJoinRequest fails
}));

グループメンバー参加リクエストを拒否する

グループ管理者は、任意のメンバー参加リクエストを拒否できます。

FApiClientPtr ApiClient = AccelByteOnlineSubsystemPtr->GetApiClient();

FString UserId = "YourUserId";

ApiClient->Group.RejectGroupJoinRequest(UserId, THandler<FAccelByteModelsMemberRequestGroupResponse>::CreateLambda([](const FAccelByteModelsMemberRequestGroupResponse& Result)
{
// Do something if RejectGroupJoinRequest succeeds
}), FErrorHandler::CreateLambda([](int32 ErrorCode, const FString& ErrorMessage)
{
// Do something if RejectGroupJoinRequest fails
}));