腾讯会议API-PHP接口实例
什么是腾讯会议API?
腾讯会议为企业IT、ISV系统集成商、SaaS服务商提供API接口,实现行业应用、企业办公平台与腾讯会议音视频的连接,轻松适配多样场景,主流平台全覆盖,支持Android、iOS、Windows、macOS以及Web端平台接入,会议全流程一键达成,全面助力企业内外部高效沟通协作,打造一体化办公体验。
应用案例 - 腾讯招聘
疫情期间,腾讯70%以上的面试通过腾讯会议进行,每周平均安排4000+场面试。腾讯招聘通过对接腾讯会议API,实现面试邀约线上化闭环。面试官只需在招聘系统填写面试时间,系统自动生成面试入会链接,一键发送给面试者,最快一分钟可完成自助面试邀约,轻松实现与面试者的全程“无接触”顺畅交流。
视频面试对环境影响尤其敏感,腾讯会议通过音视频智能降噪、美颜、虚拟背景等功能,打造了专注的面试环境,为面试双方提供了稳定、高质的视频会议服务。
官方提供了腾讯会议的多种API对接方式,具体地址:https://cloud.tencent.com/document/product/1095/42407
下面介绍web端php对接的方法:
在第一时间拿到了腾讯视频会议的API权限后,马上进行了联调。但是官方demo还是只有java的示例,所以自己参考java的版本后手动写了一个php的创建会议demo
前置:
需要申请API接口权限获取APPID,SecretId,SecretKey
权限申请地址:https://meeting.tencent.com/open-api.html
每个接口都需要在header中传入公共参数:
简单创建一个视频会议
接口地址:https://cloud.tencent.com/document/product/1095/42417
这里需要注意的是,有些参数是需要强制string格式的!!!
// 创建视频会议
public function meetings()
{
$expires = "+30 minutes";
$time = time();
$nonce = rand(100000, 999999);
$set_tings = [
"mute_enable_join" => true,
"allow_unmute_self" => false,
"mute_all" => false,
"host_video" => true,
"participant_video" => false,
"enable_record" => false,
"play_ivr_on_leave" => false,
"play_ivr_on_join" => false,
"live_url" => false,
];
$param = [
'userid' => 'test-user-id-1',
'instanceid' => 5,
'subject' => "测试会议",
'type' => 1,
'start_time' => (string)(time() - 60),
'end_time' => (string)(strtotime($expires)),
'settings' => $set_tings,
];
$signature = $this->qcloud_eip_sign($time, $nonce, json_encode($param));
// 公共参数
$header = [
"X-TC-Key:{$this->SecretId}", // 接口权限获取
"X-TC-Timestamp:{$time}",
"X-TC-Nonce:{$nonce}",
"AppId:{$this->APPID}", // 接口权限获取
"X-TC-Signature:{$signature}",
"content-type:application/json",
];
$url = 'https://api.meeting.qq.com/v1/meetings';
$res = $this->http_request($url, $header, json_encode($param));
echo($res); // 生成的会议地址在 参数 join_url 中 下载腾讯视频会议 输入房间号就可以加入了
}
// SecretKey 接口权限获取
public function qcloud_eip_sign($time = '', $nonce = '', $param = null, $uri = '/v1/meetings'): string
{
$req_method = 'POST';
$headerString = "X-TC-Key={$this->SecretId}&X-TC-Nonce={$nonce}&X-TC-Timestamp={$time}";
$httpString = "{$req_method}\n{$headerString}\n{$uri}\n{$param}";
return base64_encode(hash_hmac("sha256", $httpString, $this->SecretKey));
}
protected function http_request($url, $header = null, $data = null): bool|string
{
$curl = curl_init();
if (!empty($header)) {
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_HEADER, 0);
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
if (!empty($data)) {
curl_setopt($curl, CURLOPT_HTTPGET, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}打开 join_url 中的地址:
APP中操作界面:
API接口还提供:
查询会议
取消会议
修改会议
获取参会成员列表
查询用户的会议列表
其实都大同小异,只不过传参不一样,根据自己需求联调其他接口即可!
腾讯会议开放API对于企业内部OA或者SaaS服务等行业,可以做到对有定时、预约、自动提醒需求的企业有所帮助!
声明:版权所有,违者必究 | 如未注明,均为原创 | 本网站采用 BY-NC-SA 协议进行授权
转载:转载请注明原文链接,违者必究 - :https://www.wolfcode.net/info/182/


