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对接
发布评论