syntax = "proto3"; import "Open-IM-Server/pkg/proto/sdkws/ws.proto"; import "Open-IM-Server/pkg/proto/wrapperspb/wrapperspb.proto"; option go_package = "OpenIM/pkg/proto/group;group"; package OpenIMServer.group; message CreateGroupReq{ repeated string initMembers = 1; sdkws.GroupInfo groupInfo = 2; repeated string adminUserIDs = 3; string ownerUserID = 4; //owner } message CreateGroupResp{ sdkws.GroupInfo groupInfo = 1; } message GetGroupsInfoReq{ repeated string groupIDs = 1; } message GetGroupsInfoResp{ repeated sdkws.GroupInfo groupInfos = 1; } message SetGroupInfoReq{ sdkws.GroupInfoForSet groupInfoForSet = 1; } message SetGroupInfoResp{ } message GetGroupApplicationListReq { sdkws.RequestPagination pagination = 1; string fromUserID = 2; //owner or admin } message GetGroupApplicationListResp { uint32 total = 1; repeated sdkws.GroupRequest groupRequests = 2; } message GetUserReqApplicationListReq{ sdkws.RequestPagination pagination = 1; string userID = 2; } message GetUserReqApplicationListResp{ uint32 total = 1; repeated sdkws.GroupRequest groupRequests = 2; } message TransferGroupOwnerReq { string groupID = 1; string oldOwnerUserID = 2; string newOwnerUserID = 3; } message TransferGroupOwnerResp{ } message JoinGroupReq{ string groupID = 1; string reqMessage = 2; int32 joinSource = 3; string inviterUserID = 4; } message JoinGroupResp{ } message GroupApplicationResponseReq{ string groupID = 1; string fromUserID = 2; // string handledMsg = 3; int32 handleResult = 4; } message GroupApplicationResponseResp{ } message QuitGroupReq{ string groupID = 1; } message QuitGroupResp{ } message GetGroupMemberListReq { sdkws.RequestPagination pagination = 1; string groupID = 2; int32 filter = 3; } message GetGroupMemberListResp { uint32 total = 1; repeated sdkws.GroupMemberFullInfo members = 2; } message GetGroupMembersInfoReq { string groupID = 1; repeated string members = 2; } message GetGroupMembersInfoResp { repeated sdkws.GroupMemberFullInfo members = 1; } message KickGroupMemberReq { string groupID = 1; repeated string kickedUserIDs = 2; string reason = 3; } message KickGroupMemberResp { } message GetJoinedGroupListReq { sdkws.RequestPagination pagination = 1; string fromUserID = 2; } message GetJoinedGroupListResp{ uint32 total = 1; repeated sdkws.GroupInfo groups = 2; } message InviteUserToGroupReq { string groupID = 1; string reason = 2; repeated string invitedUserIDs = 3; } message InviteUserToGroupResp { } message GetGroupAllMemberReq { sdkws.RequestPagination pagination = 1; string groupID = 2; } message GetGroupAllMemberResp { repeated sdkws.GroupMemberFullInfo members = 1; } message CMSGroup { sdkws.GroupInfo groupInfo = 1; string groupOwnerUserName = 2; string groupOwnerUserID = 3; } message GetGroupsReq { sdkws.RequestPagination pagination = 1; string groupName = 2; string groupID = 3; } message GetGroupsResp { uint32 total = 1; repeated CMSGroup groups = 2; } message GetGroupMemberReq { string groupID = 1; } message GetGroupMembersCMSReq { sdkws.RequestPagination pagination = 1; string groupID = 2; string userName = 3; } message GetGroupMembersCMSResp { uint32 total = 1; repeated sdkws.GroupMemberFullInfo members = 2; } message DismissGroupReq{ string groupID = 1; } message DismissGroupResp{ } message MuteGroupMemberReq{ string groupID = 1; string userID = 2; uint32 mutedSeconds = 3; } message MuteGroupMemberResp{ } message CancelMuteGroupMemberReq{ string groupID = 1; string userID = 2; } message CancelMuteGroupMemberResp{ } message MuteGroupReq{ string groupID = 1; } message MuteGroupResp{ } message CancelMuteGroupReq{ string groupID = 1; } message CancelMuteGroupResp{ } message GetJoinedSuperGroupListReq { string userID = 1; } message GetJoinedSuperGroupListResp { repeated sdkws.GroupInfo groups = 1; } message GetSuperGroupsInfoReq { repeated string groupIDs = 1; } message GetSuperGroupsInfoResp { repeated sdkws.GroupInfo groupInfos = 1; } message SetGroupMemberInfo{ string groupID = 1; string userID = 2; OpenIMServer.protobuf.StringValue nickname = 3; OpenIMServer.protobuf.StringValue faceURL = 4; OpenIMServer.protobuf.Int32Value roleLevel = 5; OpenIMServer.protobuf.StringValue ex = 6; } message SetGroupMemberInfoReq{ repeated SetGroupMemberInfo members = 1; } message SetGroupMemberInfoResp{ } message GetGroupAbstractInfoReq{ repeated string groupIDs = 1; } message GroupAbstractInfo{ string groupID = 1; uint32 groupMemberNumber = 2; uint64 groupMemberListHash = 3; } message GetGroupAbstractInfoResp{ repeated GroupAbstractInfo groupAbstractInfos = 1; } message GetUserInGroupMembersReq { string userID = 1; repeated string groupIDs = 2; } message GetUserInGroupMembersResp{ repeated sdkws.GroupMemberFullInfo members = 1; } message GetGroupMemberUserIDsReq{ string groupID = 1; } message GetGroupMemberUserIDsResp{ repeated string userIDs = 1; } message GetGroupMemberRoleLevelReq{ string groupID = 1; repeated int32 roleLevels = 2; } message GetGroupMemberRoleLevelResp { repeated sdkws.GroupMemberFullInfo members = 1; } service group{ //创建群 rpc createGroup(CreateGroupReq) returns(CreateGroupResp); //申请加群 rpc joinGroup(JoinGroupReq) returns(JoinGroupResp); //退出群 rpc quitGroup(QuitGroupReq) returns(QuitGroupResp); //获取指定群信息 rpc getGroupsInfo(GetGroupsInfoReq) returns(GetGroupsInfoResp); //设置群信息 rpc setGroupInfo(SetGroupInfoReq) returns(SetGroupInfoResp); //(以管理员或群主身份)获取群的加群申请 rpc getGroupApplicationList(GetGroupApplicationListReq) returns(GetGroupApplicationListResp); //获取用户自己的主动加群申请 rpc getUserReqApplicationList(GetUserReqApplicationListReq) returns(GetUserReqApplicationListResp); //转让群主 rpc transferGroupOwner(TransferGroupOwnerReq) returns(TransferGroupOwnerResp); //群主或管理员处理进群申请 rpc groupApplicationResponse(GroupApplicationResponseReq) returns(GroupApplicationResponseResp); //获取某个群的群成员 rpc getGroupMemberList(GetGroupMemberListReq) returns(GetGroupMemberListResp); //获取某个群的指定群成员 rpc getGroupMembersInfo(GetGroupMembersInfoReq) returns(GetGroupMembersInfoResp); //踢出群 rpc kickGroupMember(KickGroupMemberReq) returns (KickGroupMemberResp); //获取某个人已加入群 rpc getJoinedGroupList(GetJoinedGroupListReq) returns (GetJoinedGroupListResp); //邀请某些人进群 rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); rpc getGroups(GetGroupsReq) returns(GetGroupsResp); rpc getGroupMembersCMS(GetGroupMembersCMSReq) returns(GetGroupMembersCMSResp); //解散群 rpc dismissGroup(DismissGroupReq) returns(DismissGroupResp); //对某个群成员禁言 rpc muteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp); //对某个群成员取消禁言 rpc cancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp); //对某个群禁言 rpc muteGroup(MuteGroupReq) returns(MuteGroupResp); //对某个群取消禁言 rpc cancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp); //获取某个用户加入的超级群 rpc getJoinedSuperGroupList(GetJoinedSuperGroupListReq) returns (GetJoinedSuperGroupListResp); //获取指定的超级群信息 rpc getSuperGroupsInfo(GetSuperGroupsInfoReq) returns (GetSuperGroupsInfoResp); //设置群成员昵称 //设置群成员信息 rpc setGroupMemberInfo(SetGroupMemberInfoReq) returns (SetGroupMemberInfoResp); //获取群信息hash值 rpc getGroupAbstractInfo(GetGroupAbstractInfoReq) returns (GetGroupAbstractInfoResp); //获取某个用户在指定群中的信息 rpc getUserInGroupMembers(GetUserInGroupMembersReq) returns (GetUserInGroupMembersResp); //获取群成员用户ID rpc getGroupMemberUserIDs(GetGroupMemberUserIDsReq) returns (GetGroupMemberUserIDsResp); //查询群组中对应级别的成员 rpc GetGroupMemberRoleLevel(GetGroupMemberRoleLevelReq)returns (GetGroupMemberRoleLevelResp); }