腾讯会议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中传入公共参数:

QQ浏览器截图20200404232654.png

 简单创建一个视频会议

接口地址:https://cloud.tencent.com/document/product/1095/42417

这里需要注意的是,有些参数是需要强制string格式的!!!

// 创建视频会议
public function meetings(){
	$expires = "+30 minutes";
	$time = time();
	$nonce = rand(100000, 999999);
	$settines = [
		"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' => $settines,
	];
	$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'){
	$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}";
	$signature = base64_encode(hash_hmac("sha256", $httpString, $this->SecretKey));
	return $signature;
}

protected function http_request($url, $header = null, $data = null){
	$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 中的地址:

QQ浏览器截图20200404231112.png

APP中操作界面:

微信图片_20200404234308.jpg

API接口还提供:

查询会议

取消会议

修改会议

获取参会成员列表

查询用户的会议列表

其实都大同小异,只不过传参不一样,根据自己需求联调其他接口即可!

腾讯会议开放API对于企业内部OA或者SaaS服务等行业,可以做到对有定时、预约、自动提醒需求的企业有所帮助!

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

分享到
  • QQ好友
  • 微信好友
  • 新浪微博