腾讯会议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/