PHP接入腾讯云直播(无SDK版)

场景

商城需要直播模块,然后可以在后台监控每个开播的直播间,可以随时关闭封禁直播间,可以看到直播中的列表,商城做的是多门店入驻形式,每个门店都可以开启直播。由于项目比较古老,新版SDK版本要求高,难以引入,只能先看文档自己请求。

云直播配置

由于新用户开通云直播功能的时候有20G免费直播流量,可以用于个人测试开发,我们可以自己先注册自己的直播配置

  • 创建域名(创建推流的域名地址)
    在这里插入图片描述
  • 创建云直播服务的license(客户端能跟我们绑定的原因)
    在这里插入图片描述
  • 创建直播回调(用于做数据分析统计)
    在这里插入图片描述

云直播实现功能

  • 我们需要根据lstreamName给客户端提供推流和拉流地址
  • 需要根据腾讯提供的接口查询在线直播的流信息
  • 根据流名称然后外部访问在线直播视频
  • 根据流名称封禁直播流
  • 查看封禁流列表
  • 解封封禁的直播流

云直播代码实现

云直播API

  • 使用v1签名算法

    <?php
    
    
    $param["Nonce"] = rand();
    // use current timestamp by default, in seconds
    $param["Timestamp"] = time();
    $param["Region"] = "";
    $param["Action"] = "ResumeDelayLiveStream";
    $param["Version"] = "2018-08-01";
    
    
    ksort($param);
    
    $signStr = "POSTlive.tencentcloudapi.com/?";
    foreach ( $param as $key => $value ) {
        $signStr = $signStr . $key . "=" . $value . "&";
    }
    $signStr = substr($signStr, 0, -1);
    
    $signature = base64_encode(hash_hmac("sha1", $signStr, "", true));
    echo $signature;            
    
  • 创建统一的API client请求发布:

    function tencentCloudClient($param)
    {
        ksort($param);
        
        $signStr = "POSTlive.tencentcloudapi.com/?";
        foreach ( $param as $key => $value ) {
            $signStr = $signStr . $key . "=" . $value . "&";
        }
        $signStr = substr($signStr, 0, -1);
        
        $signature = base64_encode(hash_hmac("sha1", $signStr, "腾讯账号统一访问所有api的key", true));
        $param['Signature'] = $signature;
        $url = 'https://live.tencentcloudapi.com';
       
        $param = http_build_query($param, 'RFC3986');
        $a = curl_post($url, $param);
        
        return $a ;exit();
    }
    
    function curl_post($url, $data= array()){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        // POST数据
        curl_setopt($ch, CURLOPT_POST, 1);
        // 把post的变量加上
        // -H "Content-Type: application/json" -H "Host: live.tencentcloudapi.com" -H "X-TC-Action: DescribeLiveStreamOnlineList" -H "X-TC-Timestamp: 1611821444" -H "X-TC-Version: 2018-08-01" -H "X-TC-Language: zh-CN"
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                'Content-Type: application/x-www-form-urlencoded',
                'Content-Length:'.strlen($data))
        );
        $output = curl_exec($ch);
        curl_close($ch);
    
        return $output;
    }
    
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值