新版PHP SDK支持Composer方式,与旧版在安装、初始化和使用上完全不同,请提前阅读安装说明,并参考以下文档进行初始化和使用。
背景信息
视频点播服务端SDK提供两种初始化方式。AccessKey方式根据授权策略获取对应权限,启用后一直有效,建议在服务端使用。STS Security Token方式根据授权策略获取相应权限后,可以自定义过期时间。
前提条件
- 您已经安装了视频点播服务端PHP SDK。安装方法,请参见安装。
- 您已经准备好访问点播服务使用的RAM用户并完成授权。
- AK方式:可以在阿里云AccessKey管理创建主账号AccessKey,也可以在RAM访问控制台创建RAM用户,并授予VOD权限。具体操作,请参见创建RAM用户并授权。
- STS方式:在RAM访问控制台RAM用户,为RAM创建角色,并授予角色相应权限。具体操作, 请参见创建角色并进行STS临时授权。
使用说明
AccessKey初始化
说明 点播服务的接入区域请参见点播中心和访问域名。例如:接入区域在上海,请使用
cn-shanghai
。
填入AccessKey信息,进行初始化。本文以PHP8.0.16为例,示例代码如下:
<?php
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Vod\Vod;
define("VOD_CLIENT_NAME", 'AliyunVodClientDemo');
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai';
//填入AccessKey信息
AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)
->regionId($regionId)
->connectTimeout(1)
->timeout(3)
->name(VOD_CLIENT_NAME);
}
STS初始化
填入STS信息,进行初始化。本文以PHP8.0.16为例,示例代码如下:
<?php
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Vod\Vod;
define("VOD_CLIENT_NAME", 'AliyunVodClientDemo');
function initVodClient($accessKeyId, $accessKeySecret, $securityToken) {
$regionId = 'cn-shanghai';
//填入STS信息
AlibabaCloud::stsClient($accessKeyId, $accessKeySecret, $securityToken)
->regionId($regionId)
->connectTimeout(1)
->timeout(3)
->name(VOD_CLIENT_NAME);
}
调用示例
本文以PHP8.0.16调用获取播放地址接口GetPlayInfo为例。示例如下:
<?php
<?php
require __DIR__ . '/vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Vod\Vod;
define("VOD_CLIENT_NAME", 'AliyunVodClientDemo');
function initVodClient($accessKeyId, $accessKeySecret) {
$regionId = 'cn-shanghai';
//填入AccessKey信息
AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)
->regionId($regionId)
->connectTimeout(1)
->timeout(3)
->name(VOD_CLIENT_NAME);
}
function getPlayInfo($videoId) {
return Vod::v20170321()->getPlayInfo()->client(VOD_CLIENT_NAME)
->withVideoId($videoId) // 指定接口参数
->withAuthTimeout(3600*24)
->format('JSON') // 指定返回格式
->request(); // 执行请求
}
try {
initVodClient('<AccessKeyId>', '<AccessKeySecret>');
$playInfo = getPlayInfo('<MediaId>');
print_r($playInfo->PlayInfoList->PlayInfo);
print_r(VOD_CLIENT_NAME);
} catch (Exception $e) {
print $e->getMessage()."\n";
}