$ownerUserID, 'memberUserIDs' => $memberUserIDs, 'adminUserIDs' => $adminUserIDs, 'groupInfo' => [ 'groupID' => $groupID, 'groupName' => $groupName, 'notification' => $notification, 'introduction' => $introduction, 'faceURL' => $faceURL, 'ex' => $ex, 'groupType' => $groupType, 'needVerification' => $needVerification, 'lookMemberInfo' => $lookMemberInfo, 'applyMemberFriend' => $applyMemberFriend ] ]; return Utils::send(Url::$createGroup, $data, '创建群组失败', $adminToken); } /** * 申请加入群组 * @param string $token 用户token * @param string $groupID 群组ID * @param string $reqMsg 申请消息 * @param int $joinSource 加入来源 * @return array */ public function joinGroup(string $token, string $groupID, string $reqMsg = '', int $joinSource = 0): array { $data = [ 'groupID' => $groupID, 'reqMsg' => $reqMsg, 'joinSource' => $joinSource ]; return Utils::send(Url::$joinGroup, $data, '申请加入群组失败', $token); } /** * 退出群组 * @param string $token 用户token * @param string $groupID 群组ID * @return array */ public function quitGroup(string $token, string $groupID): array { return Utils::send(Url::$quitGroup, ['groupID' => $groupID], '退出群组失败', $token); } /** * 获取群组信息 * @param array $groupIDs 群组ID列表 * @return array */ public function getGroupsInfo(array $groupIDs): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$getGroupsInfo, ['groupIDs' => $groupIDs], '获取群组信息失败', $adminToken); } /** * 获取群成员列表 * @param string $groupID 群组ID * @param string $filter 过滤类型,0所有,1群主,2管理员,3普通成员,4禁言,5进入黑名单 * @param int $offset 偏移量 * @param int $count 数量 * @return array */ public function getGroupMemberList(string $groupID='', string $keyword = '', int $page = 1, int $pagesize = 100): array { // 获取管理员token $data = [ 'groupID' => $groupID, 'keyword' => $keyword, 'pagination' => [ 'pageNumber' => $page, 'showNumber' => $pagesize ] ]; return Utils::send(Url::$getGroupMemberList, $data, '获取群成员列表失败'); } /** * 获取指定群成员信息 * @param string $groupID 群组ID * @param array $userIDs 用户ID列表 * @return array */ public function getGroupMembersInfo(string $groupID, array $userIDs): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'userIDs' => $userIDs ]; return Utils::send(Url::$getGroupMembersInfo, $data, '获取指定群成员信息失败', $adminToken); } /** * 将用户拉入群组 * @param string $groupID 群组ID * @param string $inviterUserID 邀请者ID * @param array $invitedUserIDList 被邀请的用户ID列表 * @param string $reason 邀请原因 * @return array */ public function inviteUserToGroup(string $groupID, string $inviterUserID, array $invitedUserIDList, string $reason = ''): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'inviterUserID' => $inviterUserID, 'invitedUserIDList' => $invitedUserIDList, 'reason' => $reason, ]; return Utils::send(Url::$inviteUserToGroup, $data, '将用户拉入群组失败', $adminToken); } /** * 踢出群成员 * @param string $groupID 群组ID * @param string $kickUserID 踢出者ID * @param array $kickedUserIDs 被踢出的用户ID列表 * @param string $reason 踢出原因 * @return array */ public function kickGroupMember(string $groupID, string $kickUserID, array $kickedUserIDs, string $reason = ''): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'kickUserID' => $kickUserID, 'kickedUserIDs' => $kickedUserIDs, 'reason' => $reason ]; return Utils::send(Url::$kickGroupMember, $data, '踢出群成员失败', $adminToken); } /** * 转让群主 * @param string $groupID 群组ID * @param string $oldOwnerUserID 原群主ID * @param string $newOwnerUserID 新群主ID * @return array */ public function transferGroupOwner(string $groupID, string $oldOwnerUserID, string $newOwnerUserID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'oldOwnerUserID' => $oldOwnerUserID, 'newOwnerUserID' => $newOwnerUserID ]; return Utils::send(Url::$transferGroupOwner, $data, '转让群主失败', $adminToken); } /** * 获取用户加入的群组列表 * @param string $userID 用户ID * @return array */ public function getJoinedGroupList(string $userID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$getJoinedGroupList, ['userID' => $userID], '获取用户加入的群组列表失败', $adminToken); } /** * 解散群组 * @param string $groupID 群组ID * @return array */ public function dismissGroup(string $groupID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$dismissGroup, ['groupID' => $groupID], '解散群组失败', $adminToken); } /** * 设置群成员昵称 * @param string $groupID 群组ID * @param string $userID 用户ID * @param string $nickname 群内昵称 * @return array */ public function setGroupMemberNickname(string $groupID, string $userID, string $nickname): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'userID' => $userID, 'nickname' => $nickname ]; return Utils::send(Url::$setGroupMemberNickname, $data, '设置群成员昵称失败', $adminToken); } /** * 设置群成员信息 * @param string $groupID 群组ID * @param string $userID 用户ID * @param array $data 群成员信息 * @return array */ public function setGroupMemberInfo(string $groupID, string $userID, array $data): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = array_merge([ 'groupID' => $groupID, 'userID' => $userID ], $data); return Utils::send(Url::$setGroupMemberInfo, $data, '设置群成员信息失败', $adminToken); } /** * 获取群成员用户ID列表 * @param string $groupID 群组ID * @return array */ public function getGroupMemberUserIDs(string $groupID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$getGroupMemberUserIDs, ['groupID' => $groupID], '获取群成员用户ID列表失败', $adminToken); } /** * 获取群成员列表 * @param string $groupID 群组ID * @param int $offset 偏移量 * @param int $count 数量 * @return array */ public function getGroupAllMemberList(string $groupID, int $offset = 0, int $count = 100): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'pagination' => [ 'pageNumber' => intval($offset / $count) + 1, 'showNumber' => $count ] ]; return Utils::send(Url::$getGroupAllMemberList, $data, '获取群成员列表失败', $adminToken); } /** * 获取用户加群申请列表 * @param string $userID 用户ID * @return array */ public function getUserReqGroupApplicationList(string $userID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$getUserReqGroupApplicationList, ['userID' => $userID], '获取用户加群申请列表失败', $adminToken); } /** * 获取指定用户对指定群组的加群请求 * @param string $groupID 群组ID * @param array $userIDs 用户ID列表 * @return array */ public function getGroupApplicationListByUserID(string $groupID, array $userIDs): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'userIDs' => $userIDs ]; return Utils::send(Url::$getGroupUsersReqApplicationList, $data, '获取指定用户对指定群组的加群请求失败', $adminToken); } /** * 处理群组申请 * @param string $groupID 群组ID * @param string $fromUserID 申请者ID * @param string $handledUserID 处理者ID * @param int $handleResult 处理结果,1同意,2拒绝 * @param string $handleMsg 处理消息 * @return array */ public function groupApplicationResponse(string $groupID, string $fromUserID, string $handledUserID, int $handleResult, string $handleMsg = ''): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'groupID' => $groupID, 'fromUserID' => $fromUserID, 'handledUserID' => $handledUserID, 'handleResult' => $handleResult, 'handleMsg' => $handleMsg ]; return Utils::send(Url::$groupApplicationResponse, $data, '处理群组申请失败', $adminToken); } /** * 禁言群组,只有群主和管理员可以发送消息 * @param string $groupID 群组ID * @return array */ public function muteGroup(string $groupID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$muteGroup, ['groupID' => $groupID], '禁言群组失败', $adminToken); } /** * 取消禁言群组,所有成员都可以发送消息 * @param string $groupID 群组ID * @return array */ public function cancelMuteGroup(string $groupID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$cancelMuteGroup, ['groupID' => $groupID], '取消禁言群组失败', $adminToken); } /** * 禁言群成员 * @param string $groupID 群组ID * @param string $userID 群成员ID * @param int $mutedSeconds 禁言时间(秒) * @return array */ public function muteGroupMember(string $groupID, string $userID, int $mutedSeconds = 0): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = ['groupID' => $groupID, 'userID' => $userID, 'mutedSeconds' => $mutedSeconds]; return Utils::send(Url::$muteGroupMember, $data, '禁言群成员失败', $adminToken); } /** * 取消禁言群成员 * @param string $groupID 群组ID * @param string $userID 群成员ID * @return array */ public function cancelMuteGroupMember(string $groupID, string $userID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = ['groupID' => $groupID, 'userID' => $userID]; return Utils::send(Url::$cancelMuteGroupMember, $data, '取消禁言群成员失败', $adminToken); } }