公司新下来了一个需求,为了让更多的企业hr在线看我们公司的“hr沙龙培训活动”(之前一直是到现场听),于是购买了网易云的直播服务,做一个在线直播观看的活动。
购买完成后,输入账号密码,在后台应用中创建我们自己的应用。在创建的应用中,我们手动创建自己的直播频道(这个是可以通过接口用代码完成,我们之所以手动创建,因为我的得推流入口就几个,也是固定的,所以就省了一点力)。如果要用接口来创建,就需要进行接口鉴权。文档上给出的是java示例,我这里给出我的PHP示例,供参考。
<?php
class Classwangyiyunzhibo{
private $AppKey; //开发者平台分配的AppKey
private $AppSecret; //开发者平台分配的AppSecret,可刷新
private $Nonce; //随机数(最大长度128个字符)
private $CurTime; //当前UTC时间戳,从1970年1月1日0点0 分0 秒开始到现在的秒数(String)
private $CheckSum; //SHA1(AppSecret + Nonce + CurTime),三个参数拼接的字符串,进行SHA1哈希计算,转化成16进制字符(String,小写)
const HEX_DIGITS = "0123456789abcdef";
public function __construct($AppKey,$AppSecret){
$this->AppKey = $AppKey;
$this->AppSecret = $AppSecret;
}
/**生成验证码**/
public function checkSumBuilder(){
//此部分生成随机字符串
$hex_digits = self::HEX_DIGITS;
$this->Nonce;
for($i=0;$i<128;$i++){ //随机字符串最大128个字符,也可以小于该数
$this->Nonce.= $hex_digits[rand(0,15)];
}
$this->CurTime = (string)(time()); //当前时间戳,以秒为单位
$join_string = $this->AppSecret.$this->Nonce.$this->CurTime;
$this->CheckSum = sha1($join_string);
}
/*****file_get_contents()post请求******/
public function postDataCurl($url='https://vcloud.163.com/app/channellist',$data=array()){
$this->checkSumBuilder(); //发送请求前需先生成checkSum
if(!empty($data)){
$data = json_encode($data);
}else{
$data = "";
}
$options = array(
'http' => array(
'method' => 'POST',
'header' => "Content-Ty