getSdk(); $search = 'http://103.39.222.184:10002/object/'; $replace = 'https://s1.shun777.com/imapi/object/'; $users = Db::name('User') ->whereLike('avatar','%'.$search) ->field('avatar,id,userID') ->select(); foreach($users as $k=>$user){ $avatar = str_replace($search,$replace,$user['avatar']); Db::name('User') ->where('id',$user['id']) ->update(['avatar'=>$avatar]); $sdata = [ 'faceURL' => $avatar ]; $sdk->user->updateUserInfo($user['userID'],$sdata); } $model = new \app\model\Openim\Group(); $list = $model->whereLike('face_url', '%'.$search)->select(); foreach($list as $k=>$group){ $avatar = str_replace($search,$replace,$group['face_url']); $model->where('id',$group['id'])->update(['face_url'=>$avatar]); } $model = new \app\model\Openim\Msg(); $total = $model->count('id'); $count = 0; for($i=0;$i<$total;$i+=1000){ $list = $model->limit($i,1000)->select(); foreach($list as $item){ if(!empty($item['msgs']) && is_array($item['msgs'])){ $msgs = []; foreach($item['msgs'] as $key => $msg){ if(is_null($msg['msg'])){ continue; } $msgs[] = $msg; } $item->msgs = $msgs; } $item->save(); $count++; } } return 0; } function convertUserID(InputInterface $input, OutputInterface $output): int { $userID = $input->getOption('userID'); $this->_convertUserID($userID,$output); return 0; } function _convertUserID($userID,$output): int { $oldUserID = \support\Encrypt::userIDEncode($userID); $newUserID = \support\Encrypt::intEncode($userID); cp("开始转换用户ID: {$userID} -> {$oldUserID} -> {$newUserID}"); // $this->convertBlackTable($oldUserID, $newUserID, $output); // $this->convertConversationTable($oldUserID, $newUserID, $output); // $this->convertVersionTables($oldUserID, $newUserID, $output); // $this->convertFriendTable($oldUserID, $newUserID, $output); // $this->convertFriendRequestTable($oldUserID, $newUserID, $output); // $this->convertGroupTable($oldUserID, $newUserID, $output); // $this->convertGroupMemberTable($oldUserID, $newUserID, $output); // $this->convertGroupRequestTable($oldUserID, $newUserID, $output); // $this->convertMsgTable($oldUserID, $newUserID, $output); // $this->convertSeqTable($oldUserID, $newUserID, $output); // $this->convertSeqUserTable($oldUserID, $newUserID, $output); // $this->convertUserTable($oldUserID, $newUserID, $output); for ($i=100006;$i<102028;$i++){ $newUserID = \support\Encrypt::intEncode($i); Db::name('User')->where('id',$i)->update(['userID'=>$newUserID]); } cp("用户ID:{$userID} -> {$newUserID} 转换完成"); return 0; } protected function convertFriendTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\Friend(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; if($item['owner_user_id']){ $savedata['owner_user_id'] = $this->turnID($item['owner_user_id']); } if($item['friend_user_id']){ $savedata['friend_user_id'] = $this->turnID($item['friend_user_id']); } if($item['operator_user_id']){ $savedata['operator_user_id'] = $this->turnID($item['operator_user_id']); } if(!empty($savedata)){ $model->where('id',$item['id'])->update($savedata); } $count++; } $output->writeln("Friend 表转换完成,共 {$count} 条记录"); } protected function convertFriendRequestTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\FriendRequest(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; if($item['from_user_id']){ $savedata['from_user_id'] = $this->turnID($item['from_user_id']); } if($item['to_user_id']){ $savedata['to_user_id'] = $this->turnID($item['to_user_id']); } if($item['handler_user_id']){ $savedata['handler_user_id'] = $this->turnID($item['handler_user_id']); } if(!empty($savedata)){ $model->where('id',$item['id'])->update($savedata); } $count++; } $output->writeln("FriendRequest 表转换完成,共 {$count} 条记录"); } protected function convertGroupTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\Group(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; if($item['creator_user_id']){ $savedata['creator_user_id'] = $this->turnID($item['creator_user_id']); } if($item['notification_user_id']){ $savedata['notification_user_id'] = $this->turnID($item['notification_user_id']); } if(!empty($savedata)){ $model->where('id',$item['id'])->update($savedata); } $count++; } $output->writeln("Group 表转换完成,共 {$count} 条记录"); } protected function convertGroupMemberTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\GroupMember(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; if($item['user_id']){ $savedata['user_id'] = $this->turnID($item['user_id']); } if($item['inviter_user_id']){ $savedata['inviter_user_id'] = $this->turnID($item['inviter_user_id']); } if($item['operator_user_id']){ $savedata['operator_user_id'] = $this->turnID($item['operator_user_id']); } if(!empty($savedata)){ $model->where('id',$item['id'])->update($savedata); } $count++; } $output->writeln("GroupMember 表转换完成,共 {$count} 条记录"); } protected function convertBlackTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\Black(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; if($item['block_user_id']){ $savedata['block_user_id'] = $this->turnID($item['block_user_id']); } if($item['owner_user_id']){ $savedata['owner_user_id'] = $this->turnID($item['owner_user_id']); } if($item['operator_user_id']){ $savedata['operator_user_id'] = $this->turnID($item['operator_user_id']); } if(!empty($savedata)){ $model->where('id',$item['id'])->update($savedata); } $count++; } $output->writeln("Black 表转换完成,共 {$count} 条记录"); } protected function convertConversationTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\Conversation(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; if($item['user_id']){ $savedata['user_id'] = $this->turnID($item['user_id']); } if($item['owner_user_id']){ $savedata['owner_user_id'] = $this->turnID($item['owner_user_id']); } if($item['conversation_id']){ $savedata['conversation_id'] = $this->handlerConversationID($item['conversation_id']); } $model->where('id',$item['id'])->update($savedata); //$item->save(); $count++; } $output->writeln("Conversation 表转换完成,共 {$count} 条记录"); } protected function convertUserTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\User(); $list = $model->select(); foreach($list as $k=>$user){ $model->where('id',$user['id'])->update([ 'user_id' => $this->turnID($user['user_id']) ]); } } protected function convertGroupRequestTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\GroupRequest(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; if($item['user_id']){ $savedata['user_id'] = $this->turnID($item['user_id']); } if($item['handle_user_id']){ $savedata['handle_user_id'] = $this->turnID($item['handle_user_id']); } if($item['inviter_user_id']){ $savedata['inviter_user_id'] = $this->turnID($item['inviter_user_id']); } $model->where('id',$item['id'])->update($savedata); $count++; } $output->writeln("GroupRequest 表转换完成,共 {$count} 条记录"); } protected function convertSeqTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\Seq(); $list = $model->select(); $count = 0; foreach($list as $item){ $model->where('id',$item['id'])->update([ 'conversation_id' => $this->handlerConversationID($item['conversation_id']) ]); $count++; } $output->writeln("Seq 表转换完成,共 {$count} 条记录"); } protected function convertSeqUserTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\SeqUser(); $list = $model->select(); //cp($model->getLastSql()); $count = 0; foreach($list as $item){ $model->where('id',$item['id'])->update([ 'user_id' => $this->turnID($item->user_id), 'conversation_id' => $this->handlerConversationID($item['conversation_id']) ]); $count++; } if($count){ $output->writeln("SeqUser 表转换完成,共 {$count} 条记录"); } } protected function convertVersionTables($oldUserID, $newUserID, $output){ $this->convertConversationVersionTable($oldUserID, $newUserID, $output); $this->convertFriendVersionTable($oldUserID, $newUserID, $output); $this->convertGroupMemberVersionTable($oldUserID, $newUserID, $output); $this->convertGroupJoinVersionTable($oldUserID, $newUserID, $output); } protected function convertConversationVersionTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\ConversationVersion(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; $savedata['d_id'] = $this->turnID($item['d_id']); if(!empty($item['logs']) && is_array($item['logs'])){ $logs = $item['logs']; foreach($logs as $key => $log){ if(isset($log['e_id'])){ $logs[$key]['e_id'] = $this->handlerConversationID($log['e_id']); } } $savedata['logs'] = $logs; } $model->where('id',$item['id'])->update($savedata); $count++; } $output->writeln("ConversationVersion 表转换完成,共 {$count} 条记录"); } protected function convertFriendVersionTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\FriendVersion(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; $savedata['d_id'] = $this->turnID($item['d_id']); if(!empty($item['logs']) && is_array($item['logs'])){ $logs = $item['logs']; foreach($logs as $key => $log){ if(isset($log['e_id'])){ $logs[$key]['e_id'] = $this->handlerConversationID($log['e_id']); } } $savedata['logs'] = $logs; } $model->where('id',$item['id'])->update($savedata); $count++; } $output->writeln("FriendVersion 表转换完成,共 {$count} 条记录"); } protected function convertGroupMemberVersionTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\GroupMemberVersion(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; $savedata['d_id'] = $this->turnID($item['d_id']); if(!empty($item['logs']) && is_array($item['logs'])){ $logs = $item['logs']; foreach($logs as $key => $log){ if(isset($log['e_id'])){ $logs[$key]['e_id'] = $this->handlerConversationID($log['e_id']); } } $savedata['logs'] = $logs; } $model->where('id',$item['id'])->update($savedata); $count++; } $output->writeln("GroupMemberVersion 表转换完成,共 {$count} 条记录"); } protected function convertGroupJoinVersionTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\GroupJoinVersion(); $list = $model->select(); $count = 0; foreach($list as $item){ $savedata = []; $savedata['d_id'] = $this->turnID($item['d_id']); if(!empty($item['logs']) && is_array($item['logs'])){ $logs = $item['logs']; foreach($logs as $key => $log){ if(isset($log['e_id'])){ $logs[$key]['e_id'] = $this->handlerConversationID($log['e_id']); } } $savedata['logs'] = $logs; } $model->where('id',$item['id'])->update($savedata); $count++; } $output->writeln("GroupJoinVersion 表转换完成,共 {$count} 条记录"); } function turnID($id){ if($id == 'official_team' || $id == 'officialteam'){ return 'SystemOfficialTeam'; } if($id == 'group_bot'){ return 'SystemGroupBot'; } if($id == 'imAdmin'){ return 'SystemImAdmin'; } if($id == 'system'){ return 'SystemAccount'; } try{ return \support\Encrypt::intEncode(\support\Encrypt::userIDDecode($id)); }catch(\Exception $e){ return $id; } } protected function convertMsgTable($oldUserID, $newUserID, $output){ $model = new \app\model\Openim\Msg(); $total = $model->count('id'); $count = 0; for($i=0;$i<$total;$i+=1000){ $list = $model->limit($i,1000)->select(); foreach($list as $item){ $savedata = []; $doc_id = explode(':',$item['doc_id']); $doc_id[0] = $this->handlerConversationID($doc_id[0]); $savedata['doc_id'] = $doc_id[0].':'.$doc_id[1]; foreach($item['msgs'] as $key => $msg){ if(isset($msg['msg']['send_id'])){ $savedata['msgs'][$key]['msg']['send_id'] = $this->turnID($msg['msg']['send_id']); } if(isset($msg['msg']['recv_id'])){ $savedata['msgs'][$key]['msg']['recv_id'] = $this->turnID($msg['msg']['recv_id']); } $content = []; if($msg['msg']['content']){ $content = json_decode($msg['msg']['content'],true); } if($msg['msg']['content_type'] == '101'){ //cp($content); //break 2; } if($msg['msg']['content_type'] == '102'){ $urlFields = ['sourcePath']; $this->handlerUrl($content,$urlFields); if(isset($content['sourcePicture'])){ $urlFields = ['url']; $this->handlerUrl($content['sourcePicture'],$urlFields); } if(isset($content['bigPicture'])){ $urlFields = ['url']; $this->handlerUrl($content['bigPicture'],$urlFields); } if(isset($content['snapshotPicture'])){ $urlFields = ['url']; $this->handlerUrl($content['snapshotPicture'],$urlFields); } //cp($content); //break 2; } if($msg['msg']['content_type'] == '103'){ $urlFields = ['soundPath','sourceUrl']; $this->handlerUrl($content,$urlFields); } if($msg['msg']['content_type'] == '104'){ $urlFields = ['videoUrl','snapshotUrl','snapshotPath','videoPath']; $this->handlerUrl($content,$urlFields); //cp($content); //break 2; } if($msg['msg']['content_type'] == '106'){ if(isset($content['atUserList'])){ foreach($content['atUserList'] as $k=>$userID){ $content['atUserList'][$k] = $this->turnID($userID); } } if(isset($content['atUsersInfo'])){ foreach($content['atUsersInfo'] as $k=>$v){ $content['atUsersInfo'][$k]['atUserID'] = $this->turnID($v['atUserID']); } } } if($msg['msg']['content_type'] == '108'){ $this->handlerUserId($content,['userID']); $this->handlerUrl($content,['faceURL']); } if($msg['msg']['content_type'] == '109'){ //cp($content); //break 2; } if($msg['msg']['content_type'] == '114'){ if(isset($content['quoteMessage'])){ $userIDFields = ['sendID','recvID']; $this->handlerUserId($detail['quoteMessage'],$userIDFields); $urlFields = ['senderFaceUrl']; $this->handlerUrl($detail['quoteMessage'],$urlFields); } } if($msg['msg']['content_type'] == '1201'){ //cp($content['detail']); $detail = json_decode($content['detail'],true); if(isset($detail['fromToUserID'])){ $userIDFields = ['fromUserID','toUserID']; $this->handlerUserId($detail['fromToUserID'],$userIDFields); } if(isset($detail['request'])){ $userIDFields = ['handlerUserID','fromUserID','toUserID']; $this->handlerUserId($detail['request'],$userIDFields); $urlFields = ['fromFaceURL','toFaceURL']; $this->handlerUrl($detail['request'],$urlFields); } $content['detail'] = json_encode($detail,JSON_UNESCAPED_UNICODE); //cp($detail); //break 2; } if(in_array($msg['msg']['content_type'],['1501','1504','1507','1508','1509','1510','1512','1513','1514','1519','1515','1520'])){ $detail = json_decode($content['detail'],true); if(isset($detail['memberList'])){ foreach($detail['memberList'] as $memberIndex => $member){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($member,$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($member,$urlFields); $detail['memberList'][$memberIndex] = $member; } } if(isset($detail['invitedUserList'])){ foreach($detail['invitedUserList'] as $memberIndex => $member){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($member,$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($member,$urlFields); $detail['invitedUserList'][$memberIndex] = $member; } } if(isset($detail['groupOwnerUser'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['groupOwnerUser'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['groupOwnerUser'],$urlFields); } if(isset($detail['inviterUser'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['inviterUser'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['inviterUser'],$urlFields); } if(isset($detail['oldGroupOwnerInfo'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['oldGroupOwnerInfo'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['oldGroupOwnerInfo'],$urlFields); } if(isset($detail['newGroupOwner'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['newGroupOwner'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['newGroupOwner'],$urlFields); } if(isset($detail['entrantUser'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['entrantUser'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['entrantUser'],$urlFields); } if(isset($detail['mutedUser'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['mutedUser'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['mutedUser'],$urlFields); } if(isset($detail['group'])){ $userIDFields = ['ownerUserID','creatorUserID']; $this->handlerUserId($detail['group'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['group'],$urlFields); } if(isset($detail['opUser'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['opUser'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['opUser'],$urlFields); } if(isset($detail['quitUser'])){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($detail['quitUser'],$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($detail['quitUser'],$urlFields); } if(isset($detail['kickedUserList'])){ foreach($detail['kickedUserList'] as $memberIndex => $member){ $userIDFields = ['userID','operatorUserID','inviterUserID']; $this->handlerUserId($member,$userIDFields); $urlFields = ['faceURL']; $this->handlerUrl($member,$urlFields); $detail['kickedUserList'][$memberIndex] = $member; } } $content['detail'] = json_encode($detail,JSON_UNESCAPED_UNICODE); //break 2; } if($msg['msg']['content_type'] == '1701'){ $detail = json_decode($content['detail'],true); $userIDFields = ['recvID','sendID']; $this->handlerUserId($detail,$userIDFields); if(isset($detail['conversationID'])){ $detail['conversationID'] = $this->handlerConversationID($detail['conversationID']); } $content['detail'] = json_encode($detail,JSON_UNESCAPED_UNICODE); } if($msg['msg']['content_type'] == '2001'){ //cp($content); //break 2; } if($msg['msg']['content_type'] == '2200'){ $detail = json_decode($content['detail'],true); $userIDFields = ['markAsReadUserID']; $this->handlerUserId($detail,$userIDFields); if(isset($detail['conversationID'])){ $detail['conversationID'] = $this->handlerConversationID($detail['conversationID']); } //cp($detail); $content['detail'] = json_encode($detail,JSON_UNESCAPED_UNICODE); //break 2; } if($msg['msg']['content_type'] == '2101'){ $detail = json_decode($content['detail'],true); $userIDFields = ['revokerUserID']; $this->handlerUserId($detail,$userIDFields); $detail['conversationID'] = $this->handlerConversationID($detail['conversationID']); $content['detail'] = json_encode($detail,JSON_UNESCAPED_UNICODE); } $msg['msg']['content'] = json_encode($content,JSON_UNESCAPED_UNICODE); $savedata['msgs'][$key] = $msg; } if(!empty($savedata)){ $model->where('id',$item['id'])->update($savedata); $count++; } } } //log_alert($contentTypes,'cansnow'); //$output->writeln("Msg 表转换完成,共 {$count} 条记录"); } function handlerConversationID($data){ $data = str_replace('official_team','officialteam',$data); $cids = explode('_',$data); $cids[1] = $this->turnID($cids[1]); if(count($cids) >2){ $cids[2] = $this->turnID($cids[2]); } $data = implode('_',$cids); return $data; } function handlerUserId(&$data,$userIDFields){ foreach($userIDFields as $userIDField){ if(isset($data[$userIDField]) && $data[$userIDField]){ $data[$userIDField] = $this->turnID($data[$userIDField]); } } } function handlerUrl(&$data,$urlFields){ foreach($urlFields as $urlField){ if(isset($data[$urlField])){ $data[$urlField] = $this->cdn($data[$urlField]); } } } function cdn($url){ if(substr(0,2) =='//'){ $url = 'https:'.$url; } if(substr(0,7) =='http://'){ $url = 'https://'.substr($url,7); } return $url; } function getUser(){ $im = $this->getSdk(); $data = $im->user->searchNotificationAccount(''); cp($data); return 0; } /** * @return void */ protected function configure() { $this->addOption('action','a', InputArgument::OPTIONAL, '操作类型'); $this->addOption('conversationID','c', InputArgument::OPTIONAL, '会话ID'); $this->addOption('userID','u', InputArgument::OPTIONAL, '用户ID'); } /** * @param InputInterface $input * @param OutputInterface $output * @return int */ protected function execute(InputInterface $input, OutputInterface $output): int { $action = $input->getOption('action'); if(!$action){ $output->writeln('空操作'); return self::FAILURE; } if(method_exists($this, $action)){ return $this->$action($input, $output); } $output->writeln($action.'不存在'); return self::FAILURE; } private function change_user(InputInterface $input, OutputInterface $output):int{ $im = $this->getSdk(); $data = $im->user->updateUserInfo(\support\Encrypt::userIDencode('100006'),['userInfo'=>['userId'=>'wx100001']]); cp($data); return self::SUCCESS; } private function sync_users(InputInterface $input, OutputInterface $output):int{ $im = $this->getSdk(); $data = $im->user->getAllUsersUid(1,1000); cp($data); return self::SUCCESS; $exsit_user_ids = Db::name('user')->whereIn('id',$data['userIDs'])->column('id'); $not_exsit_user_ids =array_diff($data['userIDs'],$exsit_user_ids); if(count($not_exsit_user_ids)> 0){ //同步用户 $res = $im->user->getUsersInfo($not_exsit_user_ids); $save_data = []; foreach($res['usersInfo'] as $k=>$_user){ array_push($save_data,[ 'id' => $_user['userID'], 'nickname' => $_user['nickname'], 'password' => '123456', 'avatar' => $_user['faceURL'] ]); // "ex": "", // "createTime": 1688454168302, // "appMangerLevel": 18, // "globalRecvMsgOpt": 0 } if(!empty($save_data)){ Db::name('user')->insertAll($save_data); } } return self::SUCCESS; } function sync_cache(){ $res = \app\model\Openim\Group::field('group_id,creator_user_id')->select(); $group_create = []; foreach($res as $v){ if(!isset($group_create[$v['creator_user_id']])){ $group_create[$v['creator_user_id']] = 0; } if($v['status'] != 2){ $group_create[$v['creator_user_id']]+=1; } cache('group_owner_'.$v['group_id'],$v['creator_user_id']); $group_user_count = \app\model\Openim\GroupMember::field('group_id,count(*) as count') ->where('group_id',$v['group_id']) ->count('user_id'); cp('群组数量',$v['group_id'],'成员数量:',$group_user_count); cache('group_'.$v['group_id'].'_user_count',$group_user_count); } //cp($group_create); foreach($group_create as $userId =>$count){ cp('用户:',$userId,'创建群组数量:',$count); cache('user_'.$userId.'_create_group_count',$count); } return 0; } function getSdk(){ if($this->sdk){ return $this->sdk; } $this->sdk = new \support\OpenImSdk\Client([ 'host' => 'http://127.0.0.1:10002', // OpenIM API地址 'secret' => 'n1e5a6s6m7', // OpenIM密钥 ]); return $this->sdk; } }