当前位置:首页 > PHP > 腾讯会议API-PHP接口实例

宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取

腾讯会议API-PHP接口实例

原创 2020-04-04 PHP 3525
分享给朋友:

什么是腾讯会议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);
    $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 中的地址:

QQ浏览器截图20200404231112.png

APP中操作界面:

微信图片_20200404234308.jpg

API接口还提供:

查询会议

取消会议

修改会议

获取参会成员列表

查询用户的会议列表

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

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

声明:版权所有,违者必究 | 如未注明,均为原创 | 本网站采用 BY-NC-SA 协议进行授权

转载:转载请注明原文链接,违者必究 - :https://wolfcode.net/info/182/

分享给朋友:

相关文章

EasyAdmin8 - PHP8.0常用框架快速后台管理系统

EasyAdmin8 开源快速开发后台,ThinKPHP 、 Laravel、webman 均覆盖

webman-blog 基于 webman 开源博客程序

webman-blog,一个基于 webman 的简单自适应个人博客程序,带后台。

webman自定义进程

1、新建文件 process/Rpc.php 编写rpc进程<?php namespace process; use Workerman\Connection\TcpConnection; class Rpc {    &n

在PHP7+下监控Memcached服务、性能、扇区等信息

PHPMemcachedAdmin:一款网页可视化的Memcached工具

Swoole的PHP协程开发框架 imi 集成ThinkPHP模板引擎 think-template

在 imi 框架根目录中执行composer require topthink/think-template安装好模板引擎后,找到路径\vendor\topthink\think-template\src\Template.php找到 fetch() 渲染模板文件的方法,将最后一

PHP7下MongoDB自增或自减一个字段的值

findAndModify属于原子操作模型数据,所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到的文档没有保存完整的情况。

PHP的面向对象解析

早期编程由于受电脑硬件限制,程序都是追求效率,而忽略可理解性,扩充性,随着硬件技术的发展,编程越来越重视多人开发,程序员越来越重视程序的可靠性,可扩展性,可维护性,所以刺激了程序语言的发展

ThinkPHP6.0使用EasyTask常驻内存多进程任务管理

PHP常驻内存的多进程任务管理器Composer包。以进程管理为出发点,同时也支持为每个进程设置定时执行功能,您可以用它来完成需要重复运行的任务(如订单超时自动取消,短信邮件异步推送,队列/消费者/频道订阅者等等),甚至处理计划任务。

PHP8新特性盘点

PHP 8.0.0 已经正式发布了,这个对于PHPer无疑是一个令人振奋的消息。它包含了很多新功能与优化项, 包括命名参数、联合类型、注解、构造器属性提升、match表达式、nullsafe运算符、JIT,并改进了类型系统、错误处理、语法一致性。

PHP8新特性系列:构造器属性提升使用及注意事项

本篇主要说下PHP8构造器属性提升的用法,这个特性对于一些需要在构造器中设置或初始化一些类属性的时候非常有用(包括public、protected和private),比如在PHP7中你可以这样定义一个类的属性,然后在构造方法中传值。class Point {  &nb