环信集成服务端封装类-聊天室
来源:互联网 发布:淘宝swot分析案例分析 编辑:程序博客网 时间:2024/06/06 17:38
环信常用接口封装
<?phpclass Easemob{ private $client_id = ''; private $client_secret = ""; private $org_name = ""; private $url = ''; //------------------------------------------------------环信用户配置参数 ---------------------------------------------------// /** * 初始化参数 * @param array $options * @param $options ['client_id'] * @param $options ['client_secret'] * @param $options ['org_name'] * @param $options ['app_name'] */ public function __construct($options) { $this->client_id = isset ($options ['client_id']) ? $options ['client_id'] : ''; $this->client_secret = isset ($options ['client_secret']) ? $options ['client_secret'] : ''; $this->org_name = isset ($options ['org_name']) ? $options ['org_name'] : ''; $this->app_name = isset ($options ['app_name']) ? $options ['app_name'] : ''; if (!empty ($this->org_name) && !empty ($this->app_name)) { $this->url = 'https://a1.easemob.com/' . $this->org_name . '/' . $this->app_name; } } /* * 环信的cur方法封装 */ function huanxin_curl_request($url, $body, $header = array(), $method = "POST") { array_push ( $header, 'Accept:application/json' ); array_push ( $header, 'Content-Type:application/json' ); $ch = curl_init (); curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 60 ); curl_setopt ( $ch, CURLOPT_URL, $url ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); // curl_setopt($ch, $method, 1); switch (strtoupper($method)) { case "GET" : curl_setopt ( $ch, CURLOPT_HTTPGET, true ); break; case "POST" : curl_setopt ( $ch, CURLOPT_POST, true ); break; case "PUT" : curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "PUT" ); break; case "DELETE" : curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, "DELETE" ); break; } curl_setopt ( $ch, CURLOPT_USERAGENT, 'SSTS Browser/1.0' ); curl_setopt ( $ch, CURLOPT_ENCODING, 'gzip' ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE ); curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, 1 ); if (isset ( $body {3} ) > 0) { curl_setopt ( $ch, CURLOPT_POSTFIELDS, $body ); } if (count ( $header ) > 0) { curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header ); } $ret = curl_exec ( $ch ); $err = curl_error ( $ch ); curl_close ( $ch ); // clear_object($ch); // clear_object($body); // clear_object($header); if ($err) { return $err; } return $ret; } /** * curl方法的封装 */ function postCurl($url,$body,$header,$type="POST"){ //1.创建一个curl资源 $ch = curl_init(); //2.设置URL和相应的选项 curl_setopt($ch,CURLOPT_URL,$url);//设置url //1)设置请求头 //array_push($header, 'Accept:application/json'); //array_push($header,'Content-Type:application/json'); //array_push($header, 'http:multipart/form-data'); //设置为false,只会获得响应的正文(true的话会连响应头一并获取到) curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt ( $ch, CURLOPT_TIMEOUT,5); // 设置超时限制防止死循环 //设置发起连接前的等待时间,如果设置为0,则无限等待。 curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5); //将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //2)设备请求体 if (count($body)>0) { //$b=json_encode($body,true); curl_setopt($ch, CURLOPT_POSTFIELDS, $body);//全部数据使用HTTP协议中的"POST"操作来发送。 } //设置请求头 if(count($header)>0){ curl_setopt($ch,CURLOPT_HTTPHEADER,$header); } //上传文件相关设置 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 对认证证书来源的检查 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);// 从证书中检查SSL加密算 //3)设置提交方式 switch($type){ case "GET": curl_setopt($ch,CURLOPT_HTTPGET,true); break; case "POST": curl_setopt($ch,CURLOPT_POST,true); break; case "PUT"://使用一个自定义的请求信息来代替"GET"或"HEAD"作为HTTP请 求。这对于执行"DELETE" 或者其他更隐蔽的HTT curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PUT"); break; case "DELETE": curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"DELETE"); break; } //4)在HTTP请求中包含一个"User-Agent: "头的字符串。-----必设 curl_setopt($ch, CURLOPT_USERAGENT, 'SSTS Browser/1.0'); curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); curl_setopt ( $ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)' ); // 模拟用户使用的浏览器 //5) //3.抓取URL并把它传递给浏览器 $res=curl_exec($ch); $result=json_decode($res,true); //4.关闭curl资源,并且释放系统资源 curl_close($ch); if(empty($result)) return $res; else return $result; } //*****************************************************************环信直播操作**************************************************************************************// /** *获取token */ function getTokens($force = false) { $url = $this->url."/token"; $options=array( "grant_type"=>"client_credentials", "client_id"=> $this->client_id,//huanxin_get_client_id(), "client_secret"=> $this->client_secret//huanxin_get_client_secret() ); //json_encode()函数,可将PHP数组或对象转成json字符串,使用json_decode()函数,可以将json字符串转换为PHP数组或对象 $body=json_encode($options); //$url=$base_url.'token'; $tokenResult = postCurl($url,$body); //var_dump($tokenResult['expires_in']); //return $tokenResult; return "Authorization:Bearer ". $tokenResult["access_token"]; //return "Authorization:Bearer YWMtG_u2OH1tEeWK7IWc3Nx2ygAAAVHjWllhTpavYYyhaI_WzIcHIQ9uitTvsmw"; } /** * 授权注册 * @param $username //hx_username * @param $password //hx_password * @return bool */ function huanxin_zhuce($username, $password) { $url = $this->url . "/users"; $param = array( "username" => $username, "password" => $password ); $res = huanxin_curl_request($url, json_encode($param)); $tokenResult = json_decode($res, true); $tokenResult["password"] = $param["password"]; $huanxin_uuid = $tokenResult["entities"][0]["uuid"]; $huanxin_username = $tokenResult["entities"][0]["username"]; $huanxin_password = $param["password"]; if (!($huanxin_uuid && $huanxin_username)) { return false; } else { return true; } } /** * 批量注册用户 * @param $options * @return mixed */ function createUsers($options){ $url=$this->url.'users'; $body=json_encode($options); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header); return $result; } /** * 重置用户密码 * @param $username * @param $newpassword * @return mixed */ function resetPassword($username,$newpassword){ $url=$this->url.'users/'.$username.'/password'; $options=array( "newpassword"=>$newpassword ); $body=json_encode($options); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header,"PUT"); return $result; } /** * 获取单个用户 * @param $username * @return mixed */ function getUser($username){ $url=$this->url.'users/'.$username; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,"GET"); return $result; } /** * 获取批量用户----不分页 * @param int $limit * @return mixed */ function getUsers($limit=0){ if(!empty($limit)){ $url=$this->url.'users?limit='.$limit; }else{ $url=$this->url.'users'; } $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,"GET"); return $result; } /** * 获取批量用户---分页 * @param int $limit * @param string $cursor * @return mixed */ function getUsersForPage($limit=0,$cursor=''){ $url=$this->url.'users?limit='.$limit.'&cursor='.$cursor; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,"GET"); if(!empty($result["cursor"])){ $cursor=$result["cursor"]; $this->writeCursor("userfile.txt",$cursor); } //var_dump($GLOBALS['cursor'].'00000000000000'); return $result; } /** * 创建文件夹 * @param $dir * @param int $mode * @return bool */ function mkdirs($dir, $mode = 0777) { if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE; if (!mkdirs(dirname($dir), $mode)) return FALSE; return @mkdir($dir, $mode); } /** * 写入cursor * @param $filename * @param $content */ function writeCursor($filename,$content){ //判断文件夹是否存在,不存在的话创建 if(!file_exists("resource/txtfile")){ mkdirs("resource/txtfile"); } $myfile=@fopen("resource/txtfile/".$filename,"w+") or die("Unable to open file!"); @fwrite($myfile,$content); fclose($myfile); } /** * 读取cursor * @param $filename * @return bool|string */ function readCursor($filename){ //判断文件夹是否存在,不存在的话创建 if(!file_exists("resource/txtfile")){ mkdirs("resource/txtfile"); } $file="resource/txtfile/".$filename; $fp=fopen($file,"a+");//这里这设置成a+ if($fp){ while(!feof($fp)){ //第二个参数为读取的长度 $data=fread($fp,1000); } fclose($fp); } return $data; } /** * 删除单个用户 * @param $username * @return mixed */ function deleteUser($username){ $url=$this->url.'users/'.$username; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 删除批量用户 limit:建议在100-500之间,、 注:具体删除哪些并没有指定, 可以在返回值中查看。 * @param $limit * @return mixed */ function deleteUsers($limit){ $url=$this->url.'users?limit='.$limit; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 修改用户昵称 * @param $username * @param $nickname * @return mixed */ function editNickname($username,$nickname){ $url=$this->url.'users/'.$username; $options=array( "nickname"=>$nickname ); $body=json_encode($options); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header,'PUT'); return $result; } /** * 添加好友- * @param $username * @param $friend_name * @return mixed */ function addFriend($username,$friend_name){ $url=$this->url.'users/'.$username.'/contacts/users/'.$friend_name; $header=array($this->getToken(),'Content-Type:application/json'); $result=$this->postCurl($url,'',$header,'POST'); return $result; } /** * 删除好友 * @param $username * @param $friend_name * @return mixed */ function deleteFriend($username,$friend_name){ $url=$this->url.'users/'.$username.'/contacts/users/'.$friend_name; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 查看好友 * @param $username * @return mixed */ function showFriends($username){ $url=$this->url.'users/'.$username.'/contacts/users'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 查看用户黑名单 * @param $username * @return mixed */ function getBlacklist($username){ $url=$this->url.'users/'.$username.'/blocks/users'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 往黑名单中加人 * @param $username * @param $usernames * @return mixed */ function addUserForBlacklist($username,$usernames){ $url=$this->url.'users/'.$username.'/blocks/users'; $body=json_encode($usernames); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header,'POST'); return $result; } /** * 从黑名单中减人 * @param $username * @param $blocked_name * @return mixed */ function deleteUserFromBlacklist($username,$blocked_name){ $url=$this->url.'users/'.$username.'/blocks/users/'.$blocked_name; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 查看用户是否在线 * @param $username * @return mixed */ function isOnline($username){ $url=$this->url.'users/'.$username.'/status'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 查看用户离线消息数 * @param $username * @return mixed */ function getOfflineMessages($username){ $url=$this->url.'users/'.$username.'/offline_msg_count'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 查看某条消息的离线状态 ----deliverd 表示此用户的该条离线消息已经收到 * @param $username * @param $msg_id * @return mixed */ function getOfflineMessageStatus($username,$msg_id){ $url=$this->url.'users/'.$username.'/offline_msg_status/'.$msg_id; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 禁用用户账号 * @param $username * @return mixed */ function deactiveUser($username){ $url=$this->url.'users/'.$username.'/deactivate'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header); return $result; } /** * 解禁用户账号 * @param $username * @return mixed */ function activeUser($username){ $url=$this->url.'users/'.$username.'/activate'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header); return $result; } /** * 强制用户下线 * @param $username * @return mixed */ function disconnectUser($username){ $url=$this->url.'users/'.$username.'/disconnect'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } //**********************************************************上传下载****************************************************************** /** * 上传图片或文件 * @param $filePath * @return mixed */ function uploadFile($filePath){ $url=$this->url.'chatfiles'; $file=file_get_contents($filePath); $body['file']=$file; $header=array('enctype:multipart/form-data',$this->getToken(),"restrict-access:true"); $result=$this->postCurl($url,$body,$header,'XXX'); return $result; } /** * 下载文件或图片 * @param $uuid * @param $shareSecret * @return string */ function downloadFile($uuid,$shareSecret){ $url=$this->url.'chatfiles/'.$uuid; $header = array("share-secret:".$shareSecret,"Accept:application/octet-stream",$this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); $filename = md5(time().mt_rand(10, 99)).".png"; //新图片名称 if(!file_exists("resource/down")){ //mkdir("../image/down"); mkdirs("resource/down/"); } $file = @fopen("resource/down/".$filename,"w+");//打开文件准备写入 @fwrite($file,$result);//写入 fclose($file);//关闭 return $filename; } /** * 下载图片缩略图 * @param $uuid * @param $shareSecret * @return string */ function downloadThumbnail($uuid,$shareSecret){ $url=$this->url.'chatfiles/'.$uuid; $header = array("share-secret:".$shareSecret,"Accept:application/octet-stream",$this->getToken(),"thumbnail:true"); $result=$this->postCurl($url,'',$header,'GET'); $filename = md5(time().mt_rand(10, 99))."th.png"; //新图片名称 if(!file_exists("resource/down")){ //mkdir("../image/down"); mkdirs("resource/down/"); } $file = @fopen("resource/down/".$filename,"w+");//打开文件准备写入 @fwrite($file,$result);//写入 fclose($file);//关闭 return $filename; } //**********************************************************发送消息****************************************************************** /** * 发送文本消息 * @param string $from * @param $target_type * @param $target * @param $content * @param $ext * @return mixed */ function sendText($from="admin",$target_type,$target,$content,$ext){ $url=$this->url.'messages'; $body['target_type']=$target_type; $body['target']=$target; $options['type']="txt"; $options['msg']=$content; $body['msg']=$options; $body['from']=$from; $body['ext']=$ext; $b=json_encode($body); $header=array($this->getToken()); $result=$this->postCurl($url,$b,$header); return $result; } /** * 发送透传消息 * @param string $from * @param $target_type * @param $target * @param $action * @param $ext * @return mixed */ function sendCmd($from="admin",$target_type,$target,$action,$ext){ $url=$this->url.'messages'; $body['target_type']=$target_type; $body['target']=$target; $options['type']="cmd"; $options['action']=$action; $body['msg']=$options; $body['from']=$from; $body['ext']=$ext; $b=json_encode($body); $header=array($this->getToken()); //$b=json_encode($body,true); $result=$this->postCurl($url,$b,$header); return $result; } /** * 发图片消息 * @param $filePath * @param string $from * @param $target_type * @param $target * @param $filename * @param $ext * @return mixed */ function sendImage($filePath,$from="admin",$target_type,$target,$filename,$ext){ $result=$this->uploadFile($filePath); $uri=$result['uri']; $uuid=$result['entities'][0]['uuid']; $shareSecret=$result['entities'][0]['share-secret']; $url=$this->url.'messages'; $body['target_type']=$target_type; $body['target']=$target; $options['type']="img"; $options['url']=$uri.'/'.$uuid; $options['filename']=$filename; $options['secret']=$shareSecret; $options['size']=array( "width"=>480, "height"=>720 ); $body['msg']=$options; $body['from']=$from; $body['ext']=$ext; $b=json_encode($body); $header=array($this->getToken()); //$b=json_encode($body,true); $result=$this->postCurl($url,$b,$header); return $result; } /** * 发语音消息 * @param $filePath * @param string $from * @param $target_type * @param $target * @param $filename * @param $length * @param $ext * @return mixed */ function sendAudio($filePath,$from="admin",$target_type,$target,$filename,$length,$ext){ $result=$this->uploadFile($filePath); $uri=$result['uri']; $uuid=$result['entities'][0]['uuid']; $shareSecret=$result['entities'][0]['share-secret']; $url=$this->url.'messages'; $body['target_type']=$target_type; $body['target']=$target; $options['type']="audio"; $options['url']=$uri.'/'.$uuid; $options['filename']=$filename; $options['length']=$length; $options['secret']=$shareSecret; $body['msg']=$options; $body['from']=$from; $body['ext']=$ext; $b=json_encode($body); $header=array($this->getToken()); //$b=json_encode($body,true); $result=$this->postCurl($url,$b,$header); return $result; } /** * 发视频消息 * @param $filePath * @param string $from * @param $target_type * @param $target * @param $filename * @param $length * @param $thumb * @param $thumb_secret * @param $ext * @return mixed */ function sendVedio($filePath,$from="admin",$target_type,$target,$filename,$length,$thumb,$thumb_secret,$ext){ $result=$this->uploadFile($filePath); $uri=$result['uri']; $uuid=$result['entities'][0]['uuid']; $shareSecret=$result['entities'][0]['share-secret']; $url=$this->url.'messages'; $body['target_type']=$target_type; $body['target']=$target; $options['type']="video"; $options['url']=$uri.'/'.$uuid; $options['filename']=$filename; $options['thumb']=$thumb; $options['length']=$length; $options['secret']=$shareSecret; $options['thumb_secret']=$thumb_secret; $body['msg']=$options; $body['from']=$from; $body['ext']=$ext; $b=json_encode($body); $header=array($this->getToken()); //$b=json_encode($body,true); $result=$this->postCurl($url,$b,$header); return $result; } /** * 发文件消息 * @param $filePath * @param string $from * @param $target_type * @param $target * @param $filename * @param $length * @param $ext * @return mixed */ function sendFile($filePath,$from="admin",$target_type,$target,$filename,$length,$ext){ $result=$this->uploadFile($filePath); $uri=$result['uri']; $uuid=$result['entities'][0]['uuid']; $shareSecret=$result['entities'][0]['share-secret']; $url=$GLOBALS['base_url'].'messages'; $body['target_type']=$target_type; $body['target']=$target; $options['type']="file"; $options['url']=$uri.'/'.$uuid; $options['filename']=$filename; $options['length']=$length; $options['secret']=$shareSecret; $body['msg']=$options; $body['from']=$from; $body['ext']=$ext; $b=json_encode($body); $header=array(getToken()); //$b=json_encode($body,true); $result=postCurl($url,$b,$header); return $result; } //**********************************************************群组操作****************************************************************** /** * 获取app中的所有群组----不分页 * @param int $limit * @return mixed */ function getGroups($limit=0){ if(!empty($limit)){ $url=$this->url.'chatgroups?limit='.$limit; }else{ $url=$this->url.'chatgroups'; } $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,"GET"); return $result; } /** * 获取app中的所有群组---分页 * @param int $limit * @param string $cursor * @return mixed */ function getGroupsForPage($limit=0,$cursor=''){ $url=$this->url.'chatgroups?limit='.$limit.'&cursor='.$cursor; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,"GET"); if(!empty($result["cursor"])){ $cursor=$result["cursor"]; $this->writeCursor("groupfile.txt",$cursor); } //var_dump($GLOBALS['cursor'].'00000000000000'); return $result; } /** * 创建一个群组 * @param $options * @return mixed */ function createGroup($options){ $url=$this->url.'chatgroups'; $header=array($this->getToken()); $body=json_encode($options); $result=$this->postCurl($url,$body,$header); return $result; } /** * 修改群组信息 * @param $group_id * @param $options * @return mixed */ function modifyGroupInfo($group_id,$options){ $url=$this->url.'chatgroups/'.$group_id; $body=json_encode($options); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header,'PUT'); return $result; } /** * 删除群组 * @param $group_id * @return mixed */ function deleteGroup($group_id){ $url=$this->url.'chatgroups/'.$group_id; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 获取群组中的成员 * @param $group_id * @return mixed */ function getGroupUsers($group_id){ $url=$this->url.'chatgroups/'.$group_id.'/users'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 群组单个加人 * @param $group_id * @param $username * @return mixed */ function addGroupMember($group_id,$username){ $url=$this->url.'chatgroups/'.$group_id.'/users/'.$username; $header=array($this->getToken(),'Content-Type:application/json'); $result=$this->postCurl($url,'',$header); return $result; } /** * 群组批量加人 * @param $group_id * @param $usernames * @return mixed */ function addGroupMembers($group_id,$usernames){ $url=$this->url.'chatgroups/'.$group_id.'/users'; $body=json_encode($usernames); $header=array($this->getToken(),'Content-Type:application/json'); $result=$this->postCurl($url,$body,$header); return $result; } /** * 群组单个减人 * @param $group_id * @param $username * @return mixed */ function deleteGroupMember($group_id,$username){ $url=$this->url.'chatgroups/'.$group_id.'/users/'.$username; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 群组批量减人 * @param $group_id * @param $usernames * @return mixed */ function deleteGroupMembers($group_id,$usernames){ $url=$this->url.'chatgroups/'.$group_id.'/users/'.$usernames; //$body=json_encode($usernames); $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 获取一个用户参与的所有群组 * @param $username * @return mixed */ function getGroupsForUser($username){ $url=$this->url.'users/'.$username.'/joined_chatgroups'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 群组转让 * @param $group_id * @param $options * @return mixed */ function changeGroupOwner($group_id,$options){ $url=$this->url.'chatgroups/'.$group_id; $body=json_encode($options); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header,'PUT'); return $result; } /** * 查询一个群组黑名单用户名列表 * @param $group_id * @return mixed */ function getGroupBlackList($group_id){ $url=$this->url.'chatgroups/'.$group_id.'/blocks/users'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 群组黑名单单个加人 * @param $group_id * @param $username * @return mixed */ function addGroupBlackMember($group_id,$username){ $url=$this->url.'chatgroups/'.$group_id.'/blocks/users/'.$username; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header); return $result; } /** * 群组黑名单单个减人 * @param $group_id * @param $username * @return mixed */ function deleteGroupBlackMember($group_id,$username){ $url=$this->url.'chatgroups/'.$group_id.'/blocks/users/'.$username; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 群组黑名单批量减人 * @param $group_id * @param $usernames * @return mixed */ function deleteGroupBlackMembers($group_id,$usernames){ $url=$this->url.'chatgroups/'.$group_id.'/blocks/users'; $body=json_encode($usernames); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header,'DELETE'); return $result; } //**********************************************************聊天室操作****************************************************************** //***********************参数描述*********************** /* *$user['username'] ? $name = $user['username'] : $name = "直播间" . rand(100, 999); *$options = [ *'name' => $name, *'description' => $name, *'maxusers' => 3000, *'owner' => $user['hx_username'] *]; */ //***************************************************** /* * 创建聊天室 * @param $options * @return mixed */ function createChatRoom($options){ $url=$this->url."/chatrooms"; $header=array(getTokens()); $body=json_encode($options); $result=postCurl($url,$body,$header); // 房间号'room_id'=>$result['data']['id'], return $result; } /** * @param $create_room */ public function get_chatrooms($create_room){ $token = getTokens(); $url=$this->url.'chatrooms/'.$create_room; $body = ""; $header = array($token); $chatroomsinfo = huanxin_curl_request($url, $body, $header, $method = "get"); $roominfo = json_decode($chatroomsinfo,true); //直播总人数 $count = $roominfo["data"][0]["affiliations_count"]; return $chatroomsinfo; } /** * 修改聊天室信息 * @param $chatroom_id $this->createChatRoom($options)["data"]["id"] * @param $options * @return mixed */ function modifyChatRoom($chatroom_id,$options){ $url=$this->url.'chatrooms/'.$chatroom_id; $body=json_encode($options); $result=$this->postCurl($url,$body,$header,'PUT'); return $result; } /** * 删除聊天室 * @param $chatroom_id * @return mixed */ function deleteChatRoom($chatroom_id){ $url=$this->url.'chatrooms/'.$chatroom_id; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 获取app中所有的聊天室 * @return mixed */ function getChatRooms(){ $url=$this->url.'chatrooms'; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,"GET"); return $result; } /** * 获取一个聊天室的详情 * @param $chatroom_id * @return mixed */ function getChatRoomDetail($chatroom_id){ $url=$this->url.'chatrooms/'.$chatroom_id; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'GET'); return $result; } /** * 聊天室单个成员添加 * @param $chatroom_id * @param $username * @return mixed */ function addChatRoomMember($chatroom_id,$username){ $url=$this->url.'chatrooms/'.$chatroom_id.'/users/'.$username; //$header=array($this->getToken()); $header=array($this->getToken(),'Content-Type:application/json'); $result=$this->postCurl($url,'',$header); return $result; } /** * 聊天室批量成员添加 * @param $chatroom_id * @param $usernames * @return mixed */ function addChatRoomMembers($chatroom_id,$usernames){ $url=$this->url.'chatrooms/'.$chatroom_id.'/users'; $body=json_encode($usernames); $header=array($this->getToken()); $result=$this->postCurl($url,$body,$header); return $result; } /** * 聊天室单个成员删除 * @param $chatroom_id * @param $username * @return mixed */ function deleteChatRoomMember($chatroom_id,$username){ $url=$this->url.'chatrooms/'.$chatroom_id.'/users/'.$username; $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; } /** * 聊天室批量成员删除 * @param $chatroom_id * @param $usernames * @return mixed */ function deleteChatRoomMembers($chatroom_id,$usernames){ $url=$this->url.'chatrooms/'.$chatroom_id.'/users/'.$usernames; //$body=json_encode($usernames); $header=array($this->getToken()); $result=$this->postCurl($url,'',$header,'DELETE'); return $result; }}
阅读全文
0 0
- 环信集成服务端封装类-聊天室
- 环信服务端集成(PHP)
- 环信服务端java集成代码示例
- 环信rest服务端集成,thinkphp记录贴
- Java IM环信服务端集成之创建应用(一)
- Java IM环信服务端集成之用户注册(三)
- Java IM环信服务端集成之用户体系集成(二)
- 小程序服务端集成微信支付
- 小程序服务端集成微信支付
- 微信支付的封装工具类,集成微信支付
- 微信支付APP客户端及服务端集成
- 聊天室服务端Server
- 环信服务端(php)YII
- 环信im集成
- iOS-集成环信
- 环信客服集成
- 环信web集成
- 环信集成
- android studio Unexpected exception during symbol building
- JVM(6):JVM调优-从eclipse开始
- java 运算符顺序
- 用HTML,CSS,JS编辑出动态立方体!
- 《机器学习实战》学习笔记(三)之K-近邻算法
- 环信集成服务端封装类-聊天室
- MySQL 笔记总结
- 掌握这几条,面试成功率更高
- 血型遗传检测
- 信息安全第二篇(加密算法对比)
- 软件文档编写那些事
- C# IFELanguage接口获取拼音,支持多音字,音调 win10/8.1/7测试通过
- JVM(7):JVM调优-工具篇
- 机器学习笔记2:支持向量机SVM基础入门