当前位置: 首页 > news >正文

腾讯的PHP框架,腾讯音视频 TRTC

namespace trc;

// 腾讯音视频

class trc{

private $secretId = 'AKIDyDGxubFJtGRN6EKk8rPjmYswmlsiLXXS 111';

private $secretKey = 'qQozwhFSM0NUnriKdgXCnFUTBdpoW07y';

public function __construct($secretId=null, $secretKey=null) {

if ($secretId) $this->secretId = $secretId;

if ($secretKey) $this->secretKey = $secretKey;

}

// 生成授权链接

public function get_sha(){

$host = "cvm.tencentcloudapi.com";

$service = "cvm";

$version = "2017-03-12";

$action = "DescribeInstances";

$region = "ap-guangzhou";

$timestamp = time();

$algorithm = "TC3-HMAC-SHA256";

// step 1: 生成规范请求字符串

$httpRequestMethod = "POST";

$canonicalUri = "/";

$canonicalQueryString = "";

$canonicalHeaders = "content-type:application/json; charset=utf-8\n"."host:".$host."\n";

$signedHeaders = "content-type;host";

$payload = '{"Limit": 1, "Filters": [{"Values": ["\u672a\u547d\u540d"], "Name": "instance-name"}]}';

$hashedRequestPayload = hash("SHA256", $payload);

$canonicalRequest = $httpRequestMethod."\n"

.$canonicalUri."\n"

.$canonicalQueryString."\n"

.$canonicalHeaders."\n"

.$signedHeaders."\n"

.$hashedRequestPayload;

// echo $canonicalRequest.PHP_EOL;

// step 2: 生成要签名的字符串

$date = gmdate("Y-m-d", $timestamp);

$credentialScope = $date."/".$service."/tc3_request";

$hashedCanonicalRequest = hash("SHA256", $canonicalRequest);

$stringToSign = $algorithm."\n"

.$timestamp."\n"

.$credentialScope."\n"

.$hashedCanonicalRequest;

// echo $stringToSign.PHP_EOL;

// step 3: 签名字符串

$secretDate = hash_hmac("SHA256", $date, "TC3".$this->secretKey, true);

$secretService = hash_hmac("SHA256", $service, $secretDate, true);

$secretSigning = hash_hmac("SHA256", "tc3_request", $secretService, true);

$signature = hash_hmac("SHA256", $stringToSign, $secretSigning);

// echo $signature.PHP_EOL;

// step 4: 生成授权

$authorization = $algorithm

." Credential=".$this->secretId."/".$credentialScope

.", SignedHeaders=content-type;host, Signature=".$signature;

// echo $authorization.PHP_EOL;

$curl = "curl -X POST https://".$host

.' -H "Authorization: '.$authorization.'"'

.' -H "Content-Type: application/json; charset=utf-8"'

.' -H "Host: '.$host.'"'

.' -H "X-TC-Action: '.$action.'"'

.' -H "X-TC-Timestamp: '.$timestamp.'"'

.' -H "X-TC-Version: '.$version.'"'

.' -H "X-TC-Region: '.$region.'"'

." -d '".$payload."'";

return $curl.PHP_EOL;

}

}

相关文章:

  • php定时刷新token,PHP定时任务获取微信access_token的方法实例分享
  • java机房上机模拟系统,机房上机安排管理系统,基于B/S模式下的JAVA系统
  • java引用技术,Java 8 方法引用
  • MATLAB简单绘图命令,简单的matlab绘图命令
  • matlab模糊控制移值到c,C/C++实现模糊控制,借助MATLAB辅助设计和fis.c文件 | 学步园...
  • matlab 稳定系统,matlab分析系统的稳定性
  • PHP的continue语句,PHP中continue语句的应用
  • php判断区间数字,如何快速判断数字在那个区间?
  • 有限差分matlab工具箱,FDTD(时域有限差分法)算法的Matlab源程序
  • matlab实现主机通信,设置主机模型和目标模型之间的通信
  • php电脑网站,PHP网站在线人数的程序代码 -电脑资料
  • 电脑php的基本方法是什么,做文员的基本电脑操作是什么
  • php 抽象类和抽象方法,PHP中抽象类和抽象方法概念与用法实例分析
  • PHP二维数组中文排序,PHP 对二维数组排序
  • php中XML怎么创建,PHP创建XML文档
  • 【译】JS基础算法脚本:字符串结尾
  • [LeetCode] Wiggle Sort
  • 【RocksDB】TransactionDB源码分析
  • Effective Java 笔记(一)
  • ES6 学习笔记(一)let,const和解构赋值
  • Java 内存分配及垃圾回收机制初探
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • mysql外键的使用
  • PermissionScope Swift4 兼容问题
  • scala基础语法(二)
  • Spring Cloud Alibaba迁移指南(一):一行代码从 Hystrix 迁移到 Sentinel
  • Spring框架之我见(三)——IOC、AOP
  • SpriteKit 技巧之添加背景图片
  • unity如何实现一个固定宽度的orthagraphic相机
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 程序员最讨厌的9句话,你可有补充?
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 嵌入式文件系统
  • 探索 JS 中的模块化
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 再次简单明了总结flex布局,一看就懂...
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 正则表达式小结
  • 2017年360最后一道编程题
  • ​ssh免密码登录设置及问题总结
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #13 yum、编译安装与sed命令的使用
  • #define与typedef区别
  • #include<初见C语言之指针(5)>
  • #微信小程序(布局、渲染层基础知识)
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (poj1.3.2)1791(构造法模拟)
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)创业的注意事项
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .net 怎么循环得到数组里的值_关于js数组
  • .Net 知识杂记