<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 網易云信通訊接口 <?php namespace app\common; /** * http://bbs.netease.im/forum.php?mod=viewthread&tid=17&extra=page%3D1 */ /** * 網易云信server API 接口 2.0 * Class ServerAPI * @author hzchensheng15@corp.netease.com * @created date 2015-10-27 16:30 * * @modified date 2016-06-15 19:30 * *** 添加直播相關示例接口 *** * ***/ class ServerAPI{ private $AppKey; //開發者平臺分配的AppKey private $AppSecret; //開發者平臺分配的AppSecret,可刷新 private $Nonce; //隨機數(最大長度128個字符) private $CurTime; //當前UTC時間戳,從1970年1月1日0點0 分0 秒開始到現在的秒數(String) private $CheckSum; //SHA1(AppSecret + Nonce + CurTime),三個參數拼接的字符串,進行SHA1哈希計算,轉化成16進制字符(String,小寫) const HEX_DIGITS = "0123456789abcdef"; /** * 參數初始化 * @param $AppKey * @param $AppSecret * @param $RequestType [選擇php請求方式,fsockopen或curl,若為curl方式,請檢查php配置是否開啟] */ public function __construct($AppKey,$AppSecret,$RequestType='curl'){ $this->AppKey = $AppKey; $this->AppSecret = $AppSecret; $this->RequestType = $RequestType; } /** * API checksum校驗生成 * @param void * @return $CheckSum(對象私有屬性) */ public function checkSumBuilder(){ //此部分生成隨機字符串 $hex_digits = self::HEX_DIGITS; $this->Nonce; for($i=0;$i<128;$i++){ //隨機字符串最大128個字符,也可以小于該數 $this->Nonce.= $hex_digits[rand(0,15)]; } $this->CurTime = (string)(time()); //當前時間戳,以秒為單位 $join_string = $this->AppSecret.$this->Nonce.$this->CurTime; $this->CheckSum = sha1($join_string); //print_r($this->CheckSum); } /** * 將json字符串轉化成php數組 * @param $json_str * @return $json_arr */ public function json_to_array($json_str){ // version 1.6 code ... // if(is_null(json_decode($json_str))){ // $json_str = $json_str; // }else{ // $json_str = json_decode($json_str); // } // $json_arr=array(); // //print_r($json_str); // foreach($json_str as $k=>$w){ // if(is_object($w)){ // $json_arr[$k]= $this->json_to_array($w); //判斷類型是不是object // }else if(is_array($w)){ // $json_arr[$k]= $this->json_to_array($w); // }else{ // $json_arr[$k]= $w; // } // } // return $json_arr; if(is_array($json_str) || is_object($json_str)){ $json_str = $json_str; }else if(is_null(json_decode($json_str))){ $json_str = $json_str; }else{ $json_str = strval($json_str); $json_str = json_decode($json_str,true); } $json_arr=array(); foreach($json_str as $k=>$w){ if(is_object($w)){ $json_arr[$k]= $this->json_to_array($w); //判斷類型是不是object }else if(is_array($w)){ $json_arr[$k]= $this->json_to_array($w); }else{ $json_arr[$k]= $w; } } return $json_arr; } /** * 使用CURL方式發送post請求 * @param $url [請求地址] * @param $data [array格式數據] * @return $請求返回結果(array) */ public function postDataCurl($url,$data){ $this->checkSumBuilder(); //發送請求前需先生成checkSum $timeout = 5000; $http_header = array( 'AppKey:'.$this->AppKey, 'Nonce:'.$this->Nonce, 'CurTime:'.$this->CurTime, 'CheckSum:'.$this->CheckSum, 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' ); //print_r($http_header); // $postdata = ''; $postdataArray = array(); foreach ($data as $key=>$value){ array_push($postdataArray, $key.'='.urlencode($value)); // $postdata.= ($key.'='.urlencode($value).'&'); } $postdata = join('&', $postdataArray); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); curl_setopt ($ch, CURLOPT_HEADER, false ); curl_setopt ($ch, CURLOPT_HTTPHEADER,$http_header); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER,false); //處理http證書問題 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); if (false === $result) { $result = curl_errno($ch); } curl_close($ch); return $this->json_to_array($result) ; } /** * 使用FSOCKOPEN方式發送post請求 * @param $url [請求地址] * @param $data [array格式數據] * @return $請求返回結果(array) */ public function postDataFsockopen($url,$data){ $this->checkSumBuilder(); //發送請求前需先生成checkSum // $postdata = ''; $postdataArray = array(); foreach ($data as $key=>$value){ array_push($postdataArray, $key.'='.urlencode($value)); // $postdata.= ($key.'='.urlencode($value).'&'); } $postdata = join('&', $postdataArray); // building POST-request: $URL_Info=parse_url($url); if(!isset($URL_Info["port"])){ $URL_Info["port"]=80; } $request = ''; $request.="POST ".$URL_Info["path"]." HTTP/1.1\r\n"; $request.="Host:".$URL_Info["host"]."\r\n"; $request.="Content-type: application/x-www-form-urlencoded;charset=utf-8\r\n"; $request.="Content-length: ".strlen($postdata)."\r\n"; $request.="Connection: close\r\n"; $request.="AppKey: ".$this->AppKey."\r\n"; $request.="Nonce: ".$this->Nonce."\r\n"; $request.="CurTime: ".$this->CurTime."\r\n"; $request.="CheckSum: ".$this->CheckSum."\r\n"; $request.="\r\n"; $request.=$postdata."\r\n"; // print_r($request); $fp = fsockopen($URL_Info["host"],$URL_Info["port"]); fputs($fp, $request); $result = ''; while(!feof($fp)) { $result .= fgets($fp, 128); } fclose($fp); $str_s = strpos($result,'{'); $str_e = strrpos($result,'}'); $str = substr($result, $str_s,$str_e-$str_s+1); return $this->json_to_array($str); } /** * 使用CURL方式發送post請求(JSON類型) * @param $url [請求地址] * @param $data [array格式數據] * @return $請求返回結果(array) */ public function postJsonDataCurl($url,$data){ $this->checkSumBuilder(); //發送請求前需先生成checkSum $timeout = 5000; $http_header = array( 'AppKey:'.$this->AppKey, 'Nonce:'.$this->Nonce, 'CurTime:'.$this->CurTime, 'CheckSum:'.$this->CheckSum, 'Content-Type:application/json;charset=utf-8' ); //print_r($http_header); $postdata = json_encode($data); $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); curl_setopt ($ch, CURLOPT_HEADER, false ); curl_setopt ($ch, CURLOPT_HTTPHEADER,$http_header); curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER,false); //處理http證書問題 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); if (false === $result) { $result = curl_errno($ch); } curl_close($ch); return $this->json_to_array($result) ; } /** * 使用FSOCKOPEN方式發送post請求(json) * @param $url [請求地址] * @param $data [array格式數據] * @return $請求返回結果(array) */ public function postJsonDataFsockopen($url, $data){ $this->checkSumBuilder(); //發送請求前需先生成checkSum $postdata = json_encode($data); // building POST-request: $URL_Info=parse_url($url); if(!isset($URL_Info["port"])){ $URL_Info["port"]=80; } $request = ''; $request.="POST ".$URL_Info["path"]." HTTP/1.1\r\n"; $request.="Host:".$URL_Info["host"]."\r\n"; $request.="Content-type: application/json;charset=utf-8\r\n"; $request.="Content-length: ".strlen($postdata)."\r\n"; $request.="Connection: close\r\n"; $request.="AppKey: ".$this->AppKey."\r\n"; $request.="Nonce: ".$this->Nonce."\r\n"; $request.="CurTime: ".$this->CurTime."\r\n"; $request.="CheckSum: ".$this->CheckSum."\r\n"; $request.="\r\n"; $request.=$postdata."\r\n"; print_r($request); $fp = fsockopen($URL_Info["host"],$URL_Info["port"]); fputs($fp, $request); $result = ''; while(!feof($fp)) { $result .= fgets($fp, 128); } fclose($fp); $str_s = strpos($result,'{'); $str_e = strrpos($result,'}'); $str = substr($result, $str_s,$str_e-$str_s+1); return $this->json_to_array($str); } /** * 創建云信ID * 1.第三方帳號導入到云信平臺; * 2.注意accid,name長度以及考慮管理秘鑰token * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @param $name [云信ID昵稱,最大長度64字節,用來PUSH推送時顯示的昵稱] * @param $props [json屬性,第三方可選填,最大長度1024字節] * @param $icon [云信ID頭像URL,第三方可選填,最大長度1024] * @param $token [云信ID可以指定登錄token值,最大長度128字節,并更新,如果未指定,會自動生成token,并在創建成功后返回] * @return $result [返回array數組對象] */ public function createUserId($accid,$name='',$props='{}',$icon='',$token=''){ $url = 'https://api.netease.im/nimserver/user/create.action'; $data= array( 'accid' => $accid, 'name' => $name, 'props' => $props, 'icon' => $icon, 'token' => $token ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 更新云信ID * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @param $name [云信ID昵稱,最大長度64字節,用來PUSH推送時顯示的昵稱] * @param $props [json屬性,第三方可選填,最大長度1024字節] * @param $token [云信ID可以指定登錄token值,最大長度128字節,并更新,如果未指定,會自動生成token,并在創建成功后返回] * @return $result [返回array數組對象] */ public function updateUserId($accid,$name='',$props='{}',$token=''){ $url = 'https://api.netease.im/nimserver/user/update.action'; $data= array( 'accid' => $accid, 'name' => $name, 'props' => $props, 'token' => $token ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 更新并獲取新token * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @return $result [返回array數組對象] */ public function updateUserToken($accid){ $url = 'https://api.netease.im/nimserver/user/refreshToken.action'; $data= array( 'accid' => $accid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 封禁云信ID * 第三方禁用某個云信ID的IM功能,封禁云信ID后,此ID將不能登陸云信imserver * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @return $result [返回array數組對象] */ public function blockUserId($accid){ $url = 'https://api.netease.im/nimserver/user/block.action'; $data= array( 'accid' => $accid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 解禁云信ID * 第三方禁用某個云信ID的IM功能,封禁云信ID后,此ID將不能登陸云信imserver * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @return $result [返回array數組對象] */ public function unblockUserId($accid){ $url = 'https://api.netease.im/nimserver/user/unblock.action'; $data= array( 'accid' => $accid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 更新用戶名片 * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @param $name [云信ID昵稱,最大長度64字節,用來PUSH推送時顯示的昵稱] * @param $icon [用戶icon,最大長度256字節] * @param $sign [用戶簽名,最大長度256字節] * @param $email [用戶email,最大長度64字節] * @param $birth [用戶生日,最大長度16字節] * @param $mobile [用戶mobile,最大長度32字節] * @param $ex [用戶名片擴展字段,最大長度1024字節,用戶可自行擴展,建議封裝成JSON字符串] * @param $gender [用戶性別,0表示未知,1表示男,2女表示女,其它會報參數錯誤] * @return $result [返回array數組對象] */ public function updateUinfo($accid,$name='',$icon='',$sign='',$email='',$birth='',$mobile='',$gender='0',$ex=''){ $url = 'https://api.netease.im/nimserver/user/updateUinfo.action'; $data= array( 'accid' => $accid, 'name' => $name, 'icon' => $icon, 'sign' => $sign, 'email' => $email, 'birth' => $birth, 'mobile' => $mobile, 'gender' => $gender, 'ex' => $ex ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 獲取用戶名片,可批量 * @param $accids [用戶帳號(例如:JSONArray對應的accid串,如:"zhangsan",如果解析出錯,會報414)(一次查詢最多為200)] * @return $result [返回array數組對象] */ public function getUinfos($accids){ $url = 'https://api.netease.im/nimserver/user/getUinfos.action'; $data= array( 'accids' => json_encode($accids) ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 好友關系-加好友 * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @param $faccid [云信ID昵稱,最大長度64字節,用來PUSH推送時顯示的昵稱] * @param $type [用戶type,最大長度256字節] * @param $msg [用戶簽名,最大長度256字節] * @return $result [返回array數組對象] */ public function addFriend($accid,$faccid,$type='1',$msg=''){ $url = 'https://api.netease.im/nimserver/friend/add.action'; $data= array( 'accid' => $accid, 'faccid' => $faccid, 'type' => $type, 'msg' => $msg ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 好友關系-更新好友信息 * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @param $faccid [要修改朋友的accid] * @param $alias [給好友增加備注名] * @return $result [返回array數組對象] */ public function updateFriend($accid,$faccid,$alias){ $url = 'https://api.netease.im/nimserver/friend/update.action'; $data= array( 'accid' => $accid, 'faccid' => $faccid, 'alias' => $alias ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 好友關系-獲取好友關系 * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @return $result [返回array數組對象] */ public function getFriend($accid){ $url = 'https://api.netease.im/nimserver/friend/get.action'; $data= array( 'accid' => $accid, 'createtime' => (string)(time()*1000) ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 好友關系-刪除好友信息 * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @param $faccid [要修改朋友的accid] * @return $result [返回array數組對象] */ public function deleteFriend($accid,$faccid){ $url = 'https://api.netease.im/nimserver/friend/delete.action'; $data= array( 'accid' => $accid, 'faccid' => $faccid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 好友關系-設置黑名單 * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @param $targetAcc [被加黑或加靜音的帳號] * @param $relationType [本次操作的關系類型,1:黑名單操作,2:靜音列表操作] * @param $value [操作值,0:取消黑名單或靜音;1:加入黑名單或靜音] * @return $result [返回array數組對象] */ public function specializeFriend($accid,$targetAcc,$relationType='1',$value='1'){ $url = 'https://api.netease.im/nimserver/user/setSpecialRelation.action'; $data= array( 'accid' => $accid, 'targetAcc' => $targetAcc, 'relationType' => $relationType, 'value' => $value ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 好友關系-查看黑名單列表 * @param $accid [云信ID,最大長度32字節,必須保證一個APP內唯一(只允許字母、數字、半角下劃線_、@、半角點以及半角-組成,不區分大小寫,會統一小寫處理)] * @return $result [返回array數組對象] */ public function listBlackFriend($accid){ $url = 'https://api.netease.im/nimserver/user/listBlackAndMuteList.action'; $data= array( 'accid' => $accid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 消息功能-發送普通消息 * @param $from [發送者accid,用戶帳號,最大32字節,APP內唯一] * @param $ope [0:點對點個人消息,1:群消息,其他返回414] * @param $to [ope==0是表示accid,ope==1表示tid] * @param $type [0 表示文本消息,1 表示圖片,2 表示語音,3 表示視頻,4 表示地理位置信息,6 表示文件,100 自定義消息類型] * @param $body [請參考下方消息示例說明中對應消息的body字段。最大長度5000字節,為一個json字段。] * @param $option [發消息時特殊指定的行為選項,Json格式,可用于指定消息的漫游,存云端歷史,發送方多端同步,推送,消息抄送等特殊行為;option中字段不填時表示默認值] * @param $pushcontent [推送內容,發送消息(文本消息除外,type=0),option選項中允許推送(push=true),此字段可以指定推送內容。 最長200字節] * @return $result [返回array數組對象] */ public function sendMsg($from,$ope,$to,$type,$body,$option=array("push"=>false,"roam"=>true,"history"=>false,"sendersync"=>true, "route"=>false),$pushcontent=''){ $url = 'https://api.netease.im/nimserver/msg/sendMsg.action'; $data= array( 'from' => $from, 'ope' => $ope, 'to' => $to, 'type' => $type, 'body' => json_encode($body), 'option' => json_encode($option), 'pushcontent' => $pushcontent ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 消息功能-發送自定義系統消息 * 1.自定義系統通知區別于普通消息,方便開發者進行業務邏輯的通知。 * 2.目前支持兩種類型:點對點類型和群類型(僅限高級群),根據msgType有所區別。 * @param $from [發送者accid,用戶帳號,最大32字節,APP內唯一] * @param $msgtype [0:點對點個人消息,1:群消息,其他返回414] * @param $to [msgtype==0是表示accid,msgtype==1表示tid] * @param $attach [自定義通知內容,第三方組裝的字符串,建議是JSON串,最大長度1024字節] * @param $pushcontent [ios推送內容,第三方自己組裝的推送內容,如果此屬性為空串,自定義通知將不會有推送(pushcontent + payload不能超過200字節)] * @param $payload [ios 推送對應的payload,必須是JSON(pushcontent + payload不能超過200字節)] * @param $sound [如果有指定推送,此屬性指定為客戶端本地的聲音文件名,長度不要超過30個字節,如果不指定,會使用默認聲音] * @return $result [返回array數組對象] */ public function sendAttachMsg($from,$msgtype,$to,$attach,$pushcontent='',$payload=array(),$sound=''){ $url = 'https://api.netease.im/nimserver/msg/sendAttachMsg.action'; $data= array( 'from' => $from, 'msgtype' => $msgtype, 'to' => $to, 'attach' => $attach, 'pushcontent' => $pushcontent, 'payload' => json_encode($payload), 'sound' => $sound ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 消息功能-文件上傳 * @param $content [字節流base64串(Base64.encode(bytes)) ,最大15M的字節流] * @param $type [上傳文件類型] * @return $result [返回array數組對象] */ public function uploadMsg($content,$type='0'){ $url = 'https://api.netease.im/nimserver/msg/upload.action'; $data= array( 'content' => $content, 'type' => $type ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 消息功能-文件上傳(multipart方式) * @param $content [字節流base64串(Base64.encode(bytes)) ,最大15M的字節流] * @param $type [上傳文件類型] * @return $result [返回array數組對象] */ public function uploadMultiMsg($content,$type='0'){ $url = 'https://api.netease.im/nimserver/msg/fileUpload.action'; $data= array( 'content' => $content, 'type' => $type ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-創建群 * @param $tname [群名稱,最大長度64字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $members [["aaa","bbb"](JsonArray對應的accid,如果解析出錯會報414),長度最大1024字節] * @param $announcement [群公告,最大長度1024字節] * @param $intro [群描述,最大長度512字節] * @param $msg [邀請發送的文字,最大長度150字節] * @param $magree [管理后臺建群時,0不需要被邀請人同意加入群,1需要被邀請人同意才可以加入群。其它會返回414。] * @param $joinmode [群建好后,sdk操作時,0不用驗證,1需要驗證,2不允許任何人加入。其它返回414] * @param $custom [自定義高級群擴展屬性,第三方可以跟據此屬性自定義擴展自己的群屬性。(建議為json),最大長度1024字節.] * @return $result [返回array數組對象] */ public function createGroup($tname,$owner,$members,$announcement='',$intro='',$msg='',$magree='0',$joinmode='0',$custom='0'){ $url = 'https://api.netease.im/nimserver/team/create.action'; $data= array( 'tname' => $tname, 'owner' => $owner, 'members' => json_encode($members), 'announcement' => $announcement, 'intro' => $intro, 'msg' => $msg, 'magree' => $magree, 'joinmode' => $joinmode, 'custom' => $custom ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-拉人入群 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $members [["aaa","bbb"](JsonArray對應的accid,如果解析出錯會報414),長度最大1024字節] * @param $magree [管理后臺建群時,0不需要被邀請人同意加入群,1需要被邀請人同意才可以加入群。其它會返回414。] * @param $joinmode [群建好后,sdk操作時,0不用驗證,1需要驗證,2不允許任何人加入。其它返回414] * @param $custom [自定義高級群擴展屬性,第三方可以跟據此屬性自定義擴展自己的群屬性。(建議為json),最大長度1024字節.] * @return $result [返回array數組對象] */ public function addIntoGroup($tid,$owner,$members,$magree='0',$msg='請您入伙'){ $url = 'https://api.netease.im/nimserver/team/add.action'; $data= array( 'tid' => $tid, 'owner' => $owner, 'members' => json_encode($members), 'magree' => $magree, 'msg' => $msg ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-踢人出群 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $member [被移除人得accid,用戶賬號,最大長度字節] * @return $result [返回array數組對象] */ public function kickFromGroup($tid,$owner,$member){ $url = 'https://api.netease.im/nimserver/team/kick.action'; $data= array( 'tid' => $tid, 'owner' => $owner, 'member' => $member ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-解散群 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @return $result [返回array數組對象] */ public function removeGroup($tid,$owner){ $url = 'https://api.netease.im/nimserver/team/remove.action'; $data= array( 'tid' => $tid, 'owner' => $owner ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-更新群資料 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $tname [群主用戶帳號,最大長度32字節] * @param $announcement [群公告,最大長度1024字節] * @param $intro [群描述,最大長度512字節] * @param $joinmode [群建好后,sdk操作時,0不用驗證,1需要驗證,2不允許任何人加入。其它返回414] * @param $custom [自定義高級群擴展屬性,第三方可以跟據此屬性自定義擴展自己的群屬性。(建議為json),最大長度1024字節.] * @return $result [返回array數組對象] */ public function updateGroup($tid,$owner,$tname,$announcement='',$intro='',$joinmode='0',$custom=''){ $url = 'https://api.netease.im/nimserver/team/update.action'; $data= array( 'tid' => $tid, 'owner' => $owner, 'tname' => $tname, 'announcement' => $announcement, 'intro' => $intro, 'joinmode' => $joinmode, 'custom' => $custom ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-群信息與成員列表查詢 * @param $tids [群tid列表,如[\"3083\",\"3084"]] * @param $ope [1表示帶上群成員列表,0表示不帶群成員列表,只返回群信息] * @return $result [返回array數組對象] */ public function queryGroup($tids,$ope='1'){ $url = 'https://api.netease.im/nimserver/team/query.action'; $data= array( 'tids' => json_encode($tids), 'ope' => $ope ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-移交群主 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $newowner [新群主帳號,最大長度32字節] * @param $leave [1:群主解除群主后離開群,2:群主解除群主后成為普通成員。其它414] * @return $result [返回array數組對象] */ public function changeGroupOwner($tid,$owner,$newowner,$leave='2'){ $url = 'https://api.netease.im/nimserver/team/changeOwner.action'; $data= array( 'tid' => $tid, 'owner' => $owner, 'newowner' => $newowner, 'leave' => $leave ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-任命管理員 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $members [["aaa","bbb"](JsonArray對應的accid,如果解析出錯會報414),長度最大1024字節(群成員最多10個)] * @return $result [返回array數組對象] */ public function addGroupManager($tid,$owner,$members){ $url = 'https://api.netease.im/nimserver/team/addManager.action'; $data= array( 'tid' => $tid, 'owner' => $owner, 'members' => json_encode($members) ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-移除管理員 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $members [["aaa","bbb"](JsonArray對應的accid,如果解析出錯會報414),長度最大1024字節(群成員最多10個)] * @return $result [返回array數組對象] */ public function removeGroupManager($tid,$owner,$members){ $url = 'https://api.netease.im/nimserver/team/removeManager.action'; $data= array( 'tid' => $tid, 'owner' => $owner, 'members' => json_encode($members) ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-獲取某用戶所加入的群信息 * @param $accid [要查詢用戶的accid] * @return $result [返回array數組對象] */ public function joinTeams($accid){ $url = 'https://api.netease.im/nimserver/team/joinTeams.action'; $data= array( 'accid' => $accid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 群組功能(高級群)-修改群昵稱 * @param $tid [云信服務器產生,群唯一標識,創建群時會返回,最大長度128字節] * @param $owner [群主用戶帳號,最大長度32字節] * @param $accid [要修改群昵稱對應群成員的accid] * @param $nick [accid對應的群昵稱,最大長度32字節。] * @return $result [返回array數組對象] */ public function updateGroupNick($tid,$owner,$accid,$nick){ $url = 'https://api.netease.im/nimserver/team/updateTeamNick.action'; $data= array( 'tid' => $tid, 'owner' => $owner, 'accid' => $accid, 'nick' => $nick ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 歷史記錄-單聊 * @param $from [發送者accid] * @param $to [接收者accid] * @param $begintime [開始時間,ms] * @param $endtime [截止時間,ms] * @param $limit [本次查詢的消息條數上限(最多100條),小于等于0,或者大于100,會提示參數錯誤] * @param $reverse [1按時間正序排列,2按時間降序排列。其它返回參數414.默認是按降序排列。] * @return $result [返回array數組對象] */ public function querySessionMsg($from,$to,$begintime,$endtime='',$limit='100',$reverse='1'){ $url = 'https://api.netease.im/nimserver/history/querySessionMsg.action'; $data= array( 'from' => $from, 'to' => $to, 'begintime' => $begintime, 'endtime' => $endtime, 'limit' => $limit, 'reverse' => $reverse ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 歷史記錄-群聊 * @param $tid [群id] * @param $accid [查詢用戶對應的accid.] * @param $begintime [開始時間,ms] * @param $endtime [截止時間,ms] * @param $limit [本次查詢的消息條數上限(最多100條),小于等于0,或者大于100,會提示參數錯誤] * @param $reverse [1按時間正序排列,2按時間降序排列。其它返回參數414.默認是按降序排列。] * @return $result [返回array數組對象] */ public function queryGroupMsg($tid,$accid,$begintime,$endtime='',$limit='100',$reverse='1'){ $url = 'https://api.netease.im/nimserver/history/queryTeamMsg.action'; $data= array( 'tid' => $tid, 'accid' => $accid, 'begintime' => $begintime, 'endtime' => $endtime, 'limit' => $limit, 'reverse' => $reverse ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 發送短信驗證碼 * @param $mobile [目標手機號] * @param $deviceId [目標設備號,可選參數] * @return $result [返回array數組對象] */ public function sendSmsCode($mobile,$deviceId=''){ $url = 'https://api.netease.im/sms/sendcode.action'; $data= array( 'mobile' => $mobile, 'deviceId' => $deviceId ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 校驗驗證碼 * @param $mobile [目標手機號] * @param $code [驗證碼] * @return $result [返回array數組對象] */ public function verifycode($mobile,$code=''){ $url = 'https://api.netease.im/sms/verifycode.action'; $data= array( 'mobile' => $mobile, 'code' => $code ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 發送模板短信 * @param $templateid [模板編號(由客服配置之后告知開發者)] * @param $mobiles [驗證碼] * @param $params [短信參數列表,用于依次填充模板,JSONArray格式,如["xxx","yyy"];對于不包含變量的模板,不填此參數表示模板即短信全文內容] * @return $result [返回array數組對象] */ public function sendSMSTemplate($templateid,$mobiles=array(),$params=array()){ $url = 'https://api.netease.im/sms/sendtemplate.action'; $data= array( 'templateid' => $templateid, 'mobiles' => json_encode($mobiles), 'params' => json_encode($params) ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 查詢模板短信發送狀態 * @param $sendid [發送短信的編號sendid] * @return $result [返回array數組對象] */ public function querySMSStatus($sendid){ $url = 'https://api.netease.im/sms/querystatus.action'; $data= array( 'sendid' => $sendid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 發起單人專線電話 * @param $callerAcc [發起本次請求的用戶的accid] * @param $caller [主叫方電話號碼(不帶+86這類國家碼,下同)] * @param $callee [被叫方電話號碼] * @param $maxDur [本通電話最大可持續時長,單位秒,超過該時長時通話會自動切斷] * @return $result [返回array數組對象] */ public function startcall($callerAcc,$caller,$callee,$maxDur='60'){ $url = 'https://api.netease.im/call/ecp/startcall.action'; $data= array( 'callerAcc' => $callerAcc, 'caller' => $caller, 'callee' => $callee, 'maxDur' => $maxDur ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 發起專線會議電話 * @param $callerAcc [發起本次請求的用戶的accid] * @param $caller [主叫方電話號碼(不帶+86這類國家碼,下同)] * @param $callee [所有被叫方電話號碼,必須是json格式的字符串,如["13588888888","13699999999"]] * @param $maxDur [本通電話最大可持續時長,單位秒,超過該時長時通話會自動切斷] * @return $result [返回array數組對象] */ public function startconf($callerAcc,$caller,$callee,$maxDur='60'){ $url = 'https://api.netease.im/call/ecp/startconf.action'; $data= array( 'callerAcc' => $callerAcc, 'caller' => $caller, 'callee' => json_encode($callee), 'maxDur' => $maxDur ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 查詢單通專線電話或會議的詳情 * @param $session [本次通話的id號] * @param $type [通話類型,1:專線電話;2:專線會議] * @return $result [返回array數組對象] */ public function queryCallsBySession($session,$type){ $url = 'https://api.netease.im/call/ecp/queryBySession.action'; $data= array( 'session' => $session, 'type' => $type ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /* 2016-06-15 新增php調用直播接口示例 */ /** * 獲取語音視頻安全認證簽名 * @param $uid [用戶帳號唯一標識,必須是Long型] */ public function getUserSignature($uid){ $url = 'https://api.netease.im/nimserver/user/getToken.action'; $data= array( 'uid' => $uid ); if($this->RequestType=='curl'){ $result = $this->postDataCurl($url,$data); }else{ $result = $this->postDataFsockopen($url,$data); } return $result; } /** * 創建一個直播頻道 * @param $name [頻道名稱, string] * @param $type [頻道類型(0:rtmp;1:hls;2:http)] */ public function channelCreate($name,$type){ $url = 'https://vcloud.163.com/app/channel/create'; $data= array( 'name' => $name, 'type' => $type ); if($this->RequestType=='curl'){ $result = $this->postJsonDataCurl($url,$data); }else{ $result = $this->postJsonDataFsockopen($url,$data); } return $result; } /** * 修改直播頻道信息 * @param $name [頻道名稱, string] * @param $cid [頻道ID,32位字符串] * @param $type [頻道類型(0:rtmp;1:hls;2:http)] */ public function channelUpdate($name, $cid, $type){ $url = 'https://vcloud.163.com/app/channel/update'; $data= array( 'name' => $name, 'cid' => $cid, 'type' => $type ); if($this->RequestType=='curl'){ $result = $this->postJsonDataCurl($url,$data); }else{ $result = $this->postJsonDataFsockopen($url,$data); } return $result; } /** * 刪除一個直播頻道 * @param $cid [頻道ID,32位字符串] */ public function channelDelete($cid){ $url = 'https://vcloud.163.com/app/channel/delete'; $data= array( 'cid' => $cid ); if($this->RequestType=='curl'){ $result = $this->postJsonDataCurl($url,$data); }else{ $result = $this->postJsonDataFsockopen($url,$data); } return $result; } /** * 獲取一個直播頻道的信息 * @param $cid [頻道ID,32位字符串] */ public function channelStats($cid){ $url = 'https://vcloud.163.com/app/channelstats'; $data= array( 'cid' => $cid ); if($this->RequestType=='curl'){ $result = $this->postJsonDataCurl($url,$data); }else{ $result = $this->postJsonDataFsockopen($url,$data); } return $result; } /** * 獲取用戶直播頻道列表 * @param $records [單頁記錄數,默認值為10] * @param $pnum = 1 [要取第幾頁,默認值為1] * @param $ofield [排序的域,支持的排序域為:ctime(默認)] * @param $sort [升序還是降序,1升序,0降序,默認為desc] */ public function channelList($records = 10, $pnum = 1, $ofield = 'ctime', $sort = 0){ $url = 'https://vcloud.163.com/app/channellist'; $data= array( 'records' => $records, 'pnum' => $pnum, 'ofield' => $ofield, 'sort' => $sort ); if($this->RequestType=='curl'){ $result = $this->postJsonDataCurl($url,$data); }else{ $result = $this->postJsonDataFsockopen($url,$data); } return $result; } /** * 重新獲取推流地址 * @param $cid [頻道ID,32位字符串] */ public function channelRefreshAddr($cid){ $url = 'https://vcloud.163.com/app/address'; $data= array( 'cid' => $cid ); if($this->RequestType=='curl'){ $result = $this->postJsonDataCurl($url,$data); }else{ $result = $this->postJsonDataFsockopen($url,$data); } return $result; } } ?>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看