1、下载官方的TLSSigAPIv2.php签名生成类

下载地址

生成非管理员id的时候需要“自有帐号导入即时通信”、才能生成对应user_id的签名;导入时“Identifier”这个字段相当于user_id

2、创建postcurl和随机字符串生成公共方法

function randomsum($sum){
      $z="";
	  for($i=0;$i<$sum/4;$i++){
	     $z .=rand(1000,9999);
	  }

	  return $z;
}


    /**
	 * curl post 模拟发送数据
	 * @param $cate
	 * @return array
	 */
  function postCurls($url, $data){
        $data  = json_encode($data); 
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);    //HTTP浏览器访问版本
        curl_setopt($curl, CURLOPT_HEADER, false);                          //头部信息
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);                   //返回的内容作为变量储存              
        curl_setopt($curl, CURLOPT_URL, $url);                              //访问网址         
        curl_setopt($curl, CURLOPT_POST, true);                             //post请求
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);                      //请求数据
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,false);                   //对认证证书来源的检查
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);                  //从证书中检查SSL加密算法是否存在
        $result = curl_exec($curl);                                         //抓取URL并把它传递给浏览器
        curl_close($curl);                                                  //关闭当前curl
        return $result;
	}
	

3、建立用户管理类和群组管理类对接接口(可以写到一个类里面)

下面是直接进行接口的post提交
3.1用户管理类

<?php
 
require_once "curl.php";//公共函数
require_once "TLSSigAPIv2.php";//签名生成

 
//$account = new User; 
 
// var_dump($account->genUserSig($id),0);
// var_dump($account->account_import("2","1","1"),1);
// var_dump($account->account_delete([  ["UserID"=>"1"]   ]),2);die;
// var_dump($account->account_check([ ["UserID"=>"1"] ]),3);die;
// var_dump($account->querystate([1] ,1),4);
 
class User{
    private $sdkappid = ***;
    private $identifier = "***";

    //自有帐号导入即时通信
    public function account_import($Identifier,$Nick,$FaceUrl) {

        $url = "https://console.tim.qq/v4/im_open_login_svc/account_import?";

        $url = $this->geturlparameter($url);
        $data = [
            "Identifier" => $Identifier,
            "Nick" => $Nick,
            "FaceUrl" => $FaceUrl
        ];
        // var_dump($data);die;
        $s = postCurls($url,$data);
        return $s;
    }
    //删除
    public function account_delete($DeleteItem) {

        $url = "https://console.tim.qq/v4/im_open_login_svc/account_delete?";
        $url = $this->geturlparameter($url);

        $data = [
            "DeleteItem" => $DeleteItem

        ];
        //  echo( json_encode($data));
        $s = postCurls($url,$data);

        return $s;
    }
    //查询帐号
    public function account_check($CheckItem) {

        $url = "https://console.tim.qq/v4/im_open_login_svc/account_check?";
        $url = $this->geturlparameter($url);

        $data = [
            "CheckItem" => $CheckItem

        ];
        //  echo( json_encode($data));
        $s = postCurls($url,$data);

        return $s;
    }

    //查询帐号在线状态
    public function querystate($To_Account ,$IsNeedDetail) {

        $url = "https://console.tim.qq/v4/im_open_login_svc/account_check?";
        $url = $this->geturlparameter($url);


        $data = [
            "IsNeedDetail" => $IsNeedDetail,
            "To_Account" => $To_Account
        ];
        //  echo( json_encode($data));
        $s = postCurls($url,$data);

        return $s;
    }
    //帐号生成的签名
    public function genUserSig($id) {
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,false);
        // var_dump(1);die;
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,"b7009c4a7bc78740e5a472a443978d282805cf62d931db0bc89920d0d57a7c80");
     

        return $TLSSigAPIv2->genUserSig($id);
    }
    //链接
    public function geturlparameter($url) {
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,false);
        // var_dump(1);die;
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,"b7009c4a7bc78740e5a472a443978d282805cf62d931db0bc89920d0d57a7c80");
        $zz = $url.http_build_query(array(
            "sdkappid" => $this->sdkappid,
            "identifier" => $this->identifier,
            "usersig" => $TLSSigAPIv2->genUserSig("administrator"),
            'random' => randomsum(32),
            'contenttype' => 'json'
        ));

        return $zz;
    }


}


 

3.2群组管理类

<?php
// namespace Tencent;
 
require_once "curl.php";//公共函数
require_once "TLSSigAPIv2.php";//签名生成

// use Tencent\TLSSigAPIv2;
//本接口用于将 App 自有帐号导入即时通信 IM 帐号系统,为该帐号创建一个对应的内部 ID,使该帐号能够使用即时通信 IM 服务。

//$Group = new Group;
//
//  var_dump($Group->get_appid_group_list([]),1);
//  var_dump($Group->create_group("1","test" ),2);
//  var_dump($Group-> destroy_group("@TGS#2MQF3EZG4"),3);
 //   $MemberList=[["Member_Account"=>"2"]];
 // var_dump($Group->add_group_member("@TGS#2ORF3EZGA",$MemberList),4);
 //删除成员
    // $MemberList=[["Member_Account"=>"2"]];
//   var_dump($Group->add_group_member("@TGS#2ORF3EZGA",$MemberList),5); 

//   var_dump($Group-> get_joined_group_list( "2"),6);
 
//   var_dump($Group-> get_group_info(["@TGS#2ORF3EZGA"]),7);
  
//   var_dump($Group-> get_role_in_group("@TGS#2ORF3EZGA",["2"]),8);
//   var_dump($Group-> modify_group_member_info("@TGS#2ORF3EZGA", "2" ,1),9);
//   var_dump($Group-> modify_group_member_info("@TGS#2ORF3EZGA", "2" ,2),9.2);
//   var_dump($Group-> modify_group_member_info("@TGS#2ORF3EZGA", "2" ,3),9.3);
//  var_dump($Group-> get_online_member_num("@TGS#2ORF3EZGA" ),10);
//  var_dump($Group-> get_group_member_info("@TGS#2ORF3EZGA" ),11);
 
 
 

class Group {
    private $sdkappid = ***;
    private $identifier = "****";
    
 
    //创建群
    public function create_group($Owner_Account,$GroupName,$Introduction="",$Notification="",$FaceUrl="") {

        $url = "https://console.tim.qq/v4/group_open_http_svc/create_group?";

        $url = $this->geturlparameter($url);
        $data=[ 
                  "Owner_Account"=> $Owner_Account, 
                  "Type"=> "AVChatRoom", 
                  "Name"=> $GroupName, 
                
              
            
            ];
            //   "Owner_Account"=> $Owner_Account, // 群主的 UserId(选填)
            //       "Type"=> "Public", // 群组类型:Private/Public/ChatRoom/AVChatRoom
            //       "Name"=> $TestGroup, // 群名称(必填)
                //   "Introduction"=> $Introduction, // 群简介(选填)
                //   "Notification"=> $Notification, // 群公告(选填)
                //   "FaceUrl"=>$FaceUrl, // 群头像 URL(选填)
                //   "MaxMemberCount"=> 500, // 最大群成员数量(选填)
                //   "ApplyJoinOption"=> "FreeAccess"  // 申请加群处理方式(选填)
        $s = postCurls($url,$data);
        return $s;
    }
      // 解散群成员 
    public function destroy_group($GroupId) {

        $url = "https://console.tim.qq/v4/group_open_http_svc/destroy_group?";

        $url = $this->geturlparameter($url);
        $data=[ 
                  "GroupId"=> $GroupId, 
                  
                
              
            
            ];
            //   "Owner_Account"=> $Owner_Account, // 群主的 UserId(选填)
            //       "Type"=> "Public", // 群组类型:Private/Public/ChatRoom/AVChatRoom
            //       "Name"=> $TestGroup, // 群名称(必填)
                //   "Introduction"=> $Introduction, // 群简介(选填)
                //   "Notification"=> $Notification, // 群公告(选填)
                //   "FaceUrl"=>$FaceUrl, // 群头像 URL(选填)
                //   "MaxMemberCount"=> 500, // 最大群成员数量(选填)
                //   "ApplyJoinOption"=> "FreeAccess"  // 申请加群处理方式(选填)
        $s = postCurls($url,$data);
        return $s;
    }
    
    //增加群成员
       public function add_group_member($GroupId,$MemberList) {

        $url = "https://console.tim.qq/v4/group_open_http_svc/add_group_member?";

        $url = $this->geturlparameter($url);
        $data=[ 
                  "GroupId"=> $GroupId, 
                   "MemberList"=> $MemberList, 
                
              
            
            ];
 
        $s = postCurls($url,$data);
        return $s;
    }
    //删除群成员 
       public function delete_group_member($GroupId,$MemberList) {

        $url = "https://console.tim.qq/v4/group_open_http_svc/delete_group_member?";

        $url = $this->geturlparameter($url);
        $data=[ 
                  "GroupId"=> $GroupId, 
                   "MemberToDel_Account"=> $MemberList, 
                
              
            
            ];
 
        $s = postCurls($url,$data);
        return $s;
    }
  
    //获取用户所加入的群组 
       public function get_joined_group_list( $MemberList) {

        $url = "https://console.tim.qq/v4/group_open_http_svc/get_joined_group_list?";

        $url = $this->geturlparameter($url);
        $data=[ 
                  "Member_Account"=> $MemberList, 
                
                
              
            
            ];
 
        $s = postCurls($url,$data);
        return $s;
    }
     //获取 群组详细信息 
       public function get_group_info( $GroupIdList) {

        $url = "https://console.tim.qq/v4/group_open_http_svc/get_group_info?";

        $url = $this->geturlparameter($url);
        $data=[ 
                  "GroupIdList"=> $GroupIdList, 
                
                
              
            
            ];
 
        $s = postCurls($url,$data);
        return $s;
    }
    //查询用户在群组中的身份
       public function get_role_in_group($GroupId,$MemberList) {

        $url = "https://console.tim.qq/v4/group_open_http_svc/get_role_in_group?";

        $url = $this->geturlparameter($url);
        $data=[ 
                  "GroupId"=> $GroupId, 
                   "User_Account"=> $MemberList, 
                
              
            
            ];
 
        $s = postCurls($url,$data);
        return $s;
    }
    
    // 修改用户信息
           public function modify_group_member_info($GroupId,$Member_Account,$type="1") {
               if($type==1){
                //   设置管理元
                   $data=[
                         "GroupId"=>$GroupId, // 要操作的群组(必填)
                          "Member_Account"=> $Member_Account, // 要操作的群成员(必填)
                          "Role"=>"Admin" // 设置管理员
                       ];
               }
               elseif ( $type==2){
                //   取消管理员
                   $data=[
                         "GroupId"=>$GroupId, // 要操作的群组(必填)
                          "Member_Account"=> $Member_Account, // 要操作的群成员(必填)
                          "Role"=> "Member" // 设置管理员
                       ];
               }else { 
                    // 设置指定的群成员禁言时间。 
 
                   $data=[
                         "GroupId"=>$GroupId, // 要操作的群组(必填)
                          "Member_Account"=> $Member_Account, // 要操作的群成员(必填)
                          "ShutUpTime"=> "86400" // 设置管理员
                       ];
               }

        $url = "https://console.tim.qq/v4/group_open_http_svc/modify_group_member_info?";

        $url = $this->geturlparameter($url);
        // var_dump($data);die;
 
        $s = postCurls($url,$data);
        return $s;
    }
    //获取直播群在线人数
       public function get_online_member_num($GroupId) {
            
                //   设置管理元
                   $data=[
                         "GroupId"=>$GroupId, // 要操作的群组(必填)
                         
                       ];
               
        $url = "https://console.tim.qq/v4/group_open_http_svc/get_online_member_num?";

        $url = $this->geturlparameter($url);
        // var_dump($data);die;
 
        $s = postCurls($url,$data);
        return $s;
    }
    //获取群成员详细资料 
       public function get_group_member_info($GroupId) {
            
                //   设置管理元
                   $data=[
                         "GroupId"=>$GroupId, // 要操作的群组(必填)
                         
                       ];
               
        $url = "https://console.tim.qq/v4/group_open_http_svc/get_group_member_info?";

        $url = $this->geturlparameter($url);
        // var_dump($data);die;
 
        $s = postCurls($url,$data);
        return $s;
    }
   
    
    // 获取 App 中的所有群组
    public function get_appid_group_list($Limit=1000,$Next=0,$GroupType="Public") {

        $url = "https://console.tim.qq/v4/group_open_http_svc/get_appid_group_list?";

        $url = $this->geturlparameter($url);
        $data=[
               "Limit"=> 1000,
                  "Next"=> 0,
                  "GroupType" => $GroupType // 拉取哪种群组形态,不填为拉取所有
            
            ];
        $s = postCurls($url,$data);
        return $s;
    }
     
    //链接
    public function geturlparameter($url) {
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,false);
        // var_dump(1);die;
        $TLSSigAPIv2 = new TLSSigAPIv2($this->sdkappid,"b7009c4a7bc78740e5a472a443978d282805cf62d931db0bc89920d0d57a7c80");
        $zz = $url.http_build_query(array(
            "sdkappid" => $this->sdkappid,
            "identifier" => $this->identifier,
            "usersig" => $TLSSigAPIv2->genUserSig("administrator"),
            'random' => randomsum(32),
            'contenttype' => 'json'
        ));

        return $zz;
    }


}


 

更多推荐

腾讯im php对接