博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
云im php,网易云IM
阅读量:5891 次
发布时间:2019-06-19

本文共 38174 字,大约阅读时间需要 127 分钟。

网易云IM

2018-09-19

/**

* Created by PhpStorm.

* User: www.bcty365.com

*/

namespace Org\Util;

class YunxinServer{

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 createUserIds($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 getUinfoss($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;

}

// 2015-07-04 聊天室功能开发 gm

/**

* 创建聊天室

* @param $accid 聊天室属主的账号accid

* @param $name  聊天室名称,长度限制128个字符

*/

public function chatroomCreates($accid,$name){

$url = "https://api.netease.im/nimserver/chatroom/create.action";

$data = array(

"creator"=>$accid,

"name"=>$name

);

if($this->RequestType=="curl"){

$result = $this->postDataCurl($url,$data);

}else{

$result = $this->postDataFsockopen($url,$data);

}

return $result;

}

/**

* 更新聊天室

* @param $roomid  聊天室ID

* @param $name    聊天室名称

* @return array

*/

public function chatroomUpdates($roomid,$name){

$url = "https://api.netease.im/nimserver/chatroom/update.action";

$data = array(

"roomid"=>$roomid,

"name"=>$name

);

if($this->RequestType=="curl"){

$result = $this->postDataCurl($url,$data);

}else{

$result = $this->postDataFsockopen($url,$data);

}

return $result;

}

/**

* 修改聊天室开启或关闭聊天室

* @param $roomid        聊天室ID

* @param $operator      创建者ID

* @param string $status 修改还是关闭  false => 关闭

*/

public function chatroomToggleCloses($roomid,$operator)

{

$url = "https://api.netease.im/nimserver/chatroom/toggleCloseStat.action";

$data = array(

"roomid"=>$roomid,

"operator"=>$operator,

"valid"=>"false"

);

if($this->RequestType=="curl"){

$result = $this->postDataCurl($url,$data);

}else{

$result = $this->postDataFsockopen($url,$data);

}

return $result;

}

public function chatroomToggleStats($roomid,$operator)

{

$url = "https://api.netease.im/nimserver/chatroom/toggleCloseStat.action";

$data = array(

"roomid"=>$roomid,

"operator"=>$operator,

"valid"=>"true"

);

if($this->RequestType=="curl"){

$result = $this->postDataCurl($url,$data);

}else{

$result = $this->postDataFsockopen($url,$data);

}

return $result;

}

/**

*设置聊天室内用户角色

* @param $roomid            // 聊天室ID

* @param $operator          // 操作者账号accid   operator必须是创建者

* @param $target            // 被操作者账号accid

* @param $opt

*          1: 设置为管理员,operator必须是创建者

2:设置普通等级用户,operator必须是创建者或管理员

-1:设为黑名单用户,operator必须是创建者或管理员

-2:设为禁言用户,operator必须是创建者或管理员

* @param string $optvalue   // true:设置;false:取消设置

*/

public function chatroomSetMemberRoles($roomid,$operator,$target,$opt,$optvalue)

{

$url = "https://api.netease.im/nimserver/chatroom/setMemberRole.action";

$data = array(

"roomid"=>$roomid,

"operator"=>$operator,

"target"=>$target,

"opt"=>$opt,

"optvalue"=>$optvalue,

);

if($this->RequestType=="curl"){

$result = $this->postDataCurl($url,$data);

}else{

$result = $this->postDataFsockopen($url,$data);

}

return $result;

}

// 获取聊天室的信息

public function chatroomgets($roomid)

{

$url = "https://api.netease.im/nimserver/chatroom/get.action";

$data = array(

"roomid"=>$roomid,

"needOnlineUserCount"=>"true"

);

if($this->RequestType=="curl"){

$result = $this->postDataCurl($url,$data);

}else{

$result = $this->postDataFsockopen($url,$data);

}

return $result;

}

控制器代码

/**

* Created by PhpStorm.

* User: www.bcty365.com

*/

namespace Api\Controller;

use Think\Controller;

class YunxinController extends Controller{

private $model;

private $AppKey = "";     // key

private $AppSecret = "";  // secret

public function _initialize(){

// 实例云信的库

$this->model = new \Org\Util\YunxinServer($this->AppKey,$this->AppSecret,"curl");

}

/**

* 创建云信ID

*

*/

public function createUserId($userid)

{

$data = M("user")->field("id accid,username,nickname name,headimgurl icon")->where("is_del = 0 AND id=".$userid)->find();

$token = md5($data["accid"]."abc");

// 写入到云信服务器

$accid = "abc".$data["accid"];

$name = $data["name"];

$icon = $data["icon"];

$info = $this->model->createUserIds($accid,$name,"{}",$icon,$token);

return $info;

}

public function updateUinfos($accid,$name,$icon,$sign,$email,$birth,$mobile,$gender,$ex){

$info = $this->model->updateUinfo($accid,$name,$icon,$sign,$email,$birth,$mobile,$gender,$ex);

return $info;

}

// 获取指定用户的云信ID

public function getUinfos(){

$accid = I("request.id");

$accid = array($accid);

$info = $this->model->getUinfoss($accid);

print_r($info);

return $info;

}

// 创建聊天室

/**

* @param $accid 聊天室的ID

* @param $name  聊天室的名称

*/

public function chatroomCreate($accid,$name){

$info = $this->model->chatroomCreates($accid,$name);

return $info;

}

// 查询聊天室

public function chatroomget(){

$roomid = I("request.id");

$info = $this->model->chatroomgets($roomid);

print_r($info);

return $info;

}

/**

* 更新聊天室

* @param $roomid  聊天室ID

* @param $name    聊天室名称

* @return array

*/

public function chatroomUpdate($roomid,$name){

$info = $this->model->chatroomUpdates($roomid,$name);

return $info;

}

/**

* 修改聊天室开启或关闭聊天室

* @param $roomid        聊天室ID

* @param $operator      创建者ID

* @param string $status 修改还是关闭  false => 修改

*/

public function chatroomToggleClose($roomid,$operator){

$info = $this->model->chatroomToggleCloses($roomid,$operator);

return $info;

}

public function chatroomToggleStat($roomid,$operator){

$info = $this->model->chatroomToggleStats($roomid,$operator);

return $info;

}

/**

*设置聊天室内用户角色

* @param $roomid            // 聊天室ID

* @param $operator          // 操作者账号accid   operator必须是创建者

* @param $target            // 被操作者账号accid

* @param $opt

*      1: 设置为管理员,operator必须是创建者

2:设置普通等级用户,operator必须是创建者或管理员

-1:设为黑名单用户,operator必须是创建者或管理员

-2:设为禁言用户,operator必须是创建者或管理员

* @param string $optvalue   // true:设置;false:取消设置

*/

public function chatroomSetMemberRole($roomid,$operator,$target,$opt,$optvalue){

$info = $this->model->chatroomSetMemberRoles($roomid,$operator,$target,$opt,$optvalue);

return $info;

}

/**

* 云信消息抄送接口

*/

public function receiveMsg()

{

$body = @file_get_contents("php://input");

$data = json_decode($body,true);

//file_put_contents("/data/server/work_justeasy_cn/debug.txt",$body);

if($data){

$d["eventType"]       = $data["eventType"];

$d["attach"]          = $data["attach"];

$d["ext"]             = $data["ext"];

$d["fromAccount"]     = $data["fromAccount"];

$d["fromAvator"]      = $data["fromAvator"];

$d["fromClientType"]  = $data["fromClientType"];

$d["fromExt"]         = $data["fromExt"];

$d["fromNick"]        = $data["fromNick"];

$d["msgTimestamp"]    = $data["msgTimestamp"];

$d["msgType"]         = $data["msgType"];

$d["msgidClient"]     = $data["msgidClient"];

$d["resendFlag"]      = $data["resendFlag"];

$d["roleInfoTimetag"] = $data["roleInfoTimetag"];

$d["roomId"]          = $data["roomId"];

$d["antispam"]        = $data["antispam"];

$info = M("receivemsg")->add($d);

if($info){

echo 200;

}

}else{

echo 500;

}

}

}

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

转载地址:http://lfnsx.baihongyu.com/

你可能感兴趣的文章
Tomcat7安装(jdk 1.7环境)
查看>>
ttlsa教程系列之mongodb——(四)mongodb索引&explain&profile
查看>>
PHP学习笔记【2】_标量数据类型
查看>>
ThinkPHP实现验证码过程
查看>>
扬辉三角
查看>>
我的友情链接
查看>>
centos 环境下cacti安装部署
查看>>
Java中的运算符(操作符)
查看>>
巧用组策略限制应用程序
查看>>
uC/OS-II内核架构解析(3)---uC/OS-II系统核心
查看>>
JS+Python(ajax+json)例子
查看>>
Spark集群搭建——SSH免密码验证登陆
查看>>
Java正则表达式入门 .
查看>>
Win7资源管理器停止记忆 保护隐私
查看>>
JS三教九流系列-Mootools.js-另一款非常优秀的js类库(一)
查看>>
IaaS, PaaS, SaaS 解释
查看>>
Checkpoint 与 lazy writer区别
查看>>
我的友情链接
查看>>
shell --- grep 命令详解
查看>>
我的友情链接
查看>>