新版PHP SDK支持Composer方式,与旧版在安装、初始化和使用上完全不同,请提前阅读安装说明,并参考以下文档进行初始化和使用。

背景信息

视频点播服务端SDK提供两种初始化方式。AccessKey方式根据授权策略获取对应权限,启用后一直有效,建议在服务端使用。STS Security Token方式根据授权策略获取相应权限后,可以自定义过期时间。

前提条件

使用说明

  • 目前新版PHP SDK详细代码信息请参见OpenAPI
  • 创建API请求时,调用的方法名为Vod::v20170321()->${apiName},其中${apiName}需要替换成要使用的点播API,接口名称的首字母必须调整为小写。可用的API名称请参见API概览

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";
}