如何实现视频封面图的动态预览效果

使用场景

在播放视频的入口页面,每个视频的封面图多数是静态图片,观众需要点击进入视频播放才能看到视频内容;如果想让观众不进入视频播放页面即可快速浏览视频内容,可以通过封面图的动态预览效果来实现。
当鼠标悬停在视频封面图上时,会加载动态预览图,并会随着鼠标的移动显示不同时间点的视频截图。

Demo效果

dpd_new (3)

实现方式

首先在页面中引用demo中的polyv-cover-preview.js文件,然后在需要显示动态预览效果的页面,嵌入以下代码:

<div data-vid="f13e9957353bbc54d8922d1cbd55ab9a_f" class="polyv-cover-preview" style="width:160px; height:90px;"></div>

其中,id为点播视频的vid,style中的width、height可设置为页面中需要显示的封面图宽高。
Demo请点击这里下载。

注意事项

只有时长大于5分钟的视频才会生成动态预览图,时长小于5分钟的视频只会显示静态的封面图。

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

创建 Playsafe Token

接口URL

https://hls.videocc.net/service/v1/token

接口说明

  1. 用于创建 Playsafe Token,这个 token 即是加密视频的播放凭证
  2. 如果一个token尚未过期,此时使用相同的 videoId、viewerId、viewerIp、iswxa 参数值请求该接口,则会复用原来的token,并延长原token的有效期。

支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
userId string 用户ID
videoId string 视频ID,例如 e6b23c6f519c5906e54a13b8200d7bb0_e
ts long 当前13位毫秒级时间戳,10分钟内有效
viewerId string 观看者ID,要求不同的观看者使用不同的ID
viewerIp string 观看者IP,如果为空,或自动获取调用该接口时的IP
viewerName string 观看者名称
expires long token 有效时长,单位为秒。为空时默认为10分钟。
disposable boolean true 表示 token 仅一次有效(验证一次后,token 就失效了)。
false 则表示在有效期内可以多次验证。默认为 false。
iswxa int 是否微信小程序播放,1为是,0为否。默认为0。
extraParams string 自定义的其它参数
sign string 签名,为32位大写的MD5值,详细的签名规则见下文

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "token": "973d7731803940a1b14fdc93941f493c",
        "userId": "e6b23c6f51",
        "videoId": "e6b23c6f51c4b1cb9f0302a92ed42440_e",
        "viewerIp": "127.0.0.1",
        "viewerId": "abcd1234",
        "viewerName": null,
        "extraParams": null,
        "ttl": 600000,
        "createdTime": 1552446282044,
        "expiredTime": 1552446882044,
        "iswxa": 0,
        "disposable": false
    }
}

响应失败JSON示例:

userId 错误

{
    "code": 400,
    "status": "error",
    "message": "user_not_found",
    "data": "user secretKey not found."
}

ts 过期

{
    "code": 403,
    "status": "error",
    "message": "ts_expired",
    "data": "ts parameter is expired."
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "sign_invalid",
    "data": "sign parameter invalid."
}

响应字段说明

参数名 说明
code 响应代码,成功为200,403为ts过期或前面错误,其它值为其它参数错误
status 成功为success,失败为error
message 成功时为空错误时为错误提示消息
data 成功时为token相关数据,失败时为具体的错误提示
userId 用户ID
videoId 视频ID,例如 e6b23c6f519c5906e54a13b8200d7bb0_e
viewerIp 观看者IP,如果为空,或自动获取调用该接口时的IP
viewerId 观看者ID,要求不同的观看者使用不同的ID
viewerName 观看者名称
extraParams 自定义的其它参数
ttl token 有效时长,单位为毫秒
createdTime token 创建时间
expiredTime token 过期时间
iswxa 是否微信小程序播放,1为是,0为否。
disposable true 表示 token 仅一次有效(验证一次后,token 就失效了)。false 则表示在有效期内可以多次验证。

签名规则

  1. 将除了 sign 之外的全部 非空 请求参数,按字典序升序排列,按“参数名1参数值1参数名2参数值2……”的格式拼接起来,例如:ts1552447784505userIde6b23c6f51videoIde6b23c6f51c4b1cb9f0302a92ed42440_eviewerIdabcd1234viewerIp127.0.0.1
  2. 在上述字符串的头、尾分别加上 secretKey。以上述字符串、secretKey为abc为例,得到:abcts1552447784505userIde6b23c6f51videoIde6b23c6f51c4b1cb9f0302a92ed42440_eviewerIdabcd1234viewerIp127.0.0.1abc
  3. 计算上述字符串的MD5值,并转为大写,得到:166D45560D37DDBF0F05081D975231B5

php请求示例

// php
function get_client_ip() {
  if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
  } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
      $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
  } else {
      $ipaddress = $_SERVER['REMOTE_ADDR'];
  }
    return $ipaddress;
}

$userId = 'your userId';       // polyv 提供的服务器间的通讯验证
$secretkey = 'your secretkey';     // polyv 提供的接口调用签名访问的key
$videoId = '65956867df8c717eb79136e05394122c_6';  // 视频对应vid
$ts = time() * 1000;      // 时间戳
$viewerIp = get_client_ip();  // 用户 ip
$viewerId = get_viewer_id();      // 自定义用户 id
$viewerName = get_viewer_name();  // 用户昵称, 若值为中文需要urlencode('张三'),可为空
$extraParams = get_extra_params();  // 自定义参数,可为空

/* 将参数 $userId、$secretkey、$videoId、$ts、$viewerIp、$viewerIp、$viewerId、$viewerName、$extraParams
    按照ASCKII升序 key + value + key + value ... +value 拼接
*/
$concated =  'extraParams'.$extraParams.'ts'.$ts.'userId'.$userId.'videoId'.$videoId.'viewerId'.$viewerId.'viewerIp'.$viewerIp.'viewerName'.$viewerName;

// 再首尾加上 secretkey
$plain = $secretkey.$concated.$secretkey;

// 取大写MD5
$sign = strtoupper(md5($plain));



// 然后将下列参数用post请求  https://hls.videocc.net/service/v1/token 获取 token
$url = 'https://hls.videocc.net/service/v1/token';
$data = array('userId' => $userId, 'videoId' => $videoId, 'ts' => $ts, 'viewerIp' => $viewerIp, 'viewerName' => $viewerName, 'extraParams' => $extraParams, 'viewerId' => $viewerId, 'sign' => $sign);

$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data)
    )
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

// 获取返回结果的 token, 再传入 playsafe 中播放加密视频
$token = json_decode($result)->data->token;
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

Web上传SDK使用文档

Polyv JavaScript 上传 SDK 为您提供上传媒体文件到保利威云点播平台的开发工具包。

功能

  • 快捷上传多种格式的媒体文件。
  • 支持上传时的各种设置,如文件标题、描述、标签、上传目录、是否开启课件优化处理等。
  • 默认采用分片并发上传的方式,支持断点续传

使用方法

前提条件

  1. 使用本 SDK 前,要先开通保利威云点播服务。如果您还不了解该服务,请登录产品主页查看,详见:云点播
  2. 获取 secretKey 等相关信息用于用户身份校验,您可以在「云点播管理后台 -> 设置 -> API接口」页面中找到相关信息,点击这里登录后台

浏览器支持

  • IE(>=10)和Edge。
  • 主流版本的 Chrome、Firefox、Safari。
  • 以主流版本 Chrome 为核心的浏览器,如最新版本的 QQ 浏览器、360 浏览器等。

集成 SDK

您可以选择以下任意一种方法调用本 SDK:

方法一:引入在线资源

<!-- 指定版本 -->
<script src="//player.polyv.net/resp/vod-upload-js-sdk/1.0.0/vod-upload-js-sdk.min.js"></script>
<!-- 最新版本 -->
<script src="//player.polyv.net/resp/vod-upload-js-sdk/latest/vod-upload-js-sdk.min.js"></script>

方法二:通过 npm 安装

第一步,在项目目录下运行安装命令:

npm install @polyv/vod-upload-js-sdk

第二步, 在页面中引入(需要构建工具支持):

import PlvVideoUpload from '@polyv/vod-upload-js-sdk'

或者

const PlvVideoUpload = require('@polyv/vod-upload-js-sdk');

快速开始

初始化上传实例

首先,创建 PlvVideoUpload 实例。

const videoUpload = new PlvVideoUpload({
  events: {
      Error: (err) => {  // 错误事件回调
          console.log(err);
      },
      UploadComplete: () => {}  // 全部上传任务完成回调
  }
});

调用 updateUserData() 设置账号授权验证信息,并每隔 3 分钟更新一次

// 授权验证信息3分钟内有效,当 sign 过期时需要调用该方法更新
videoUpload.updateUserData({
  userid: <userid> , // Polyv云点播账号的ID
  ptime: <timestamp> , // 时间戳
  sign: <sign> , // 是根据将secretkey和ts按照顺序拼凑起来的字符串进行MD5计算得到的值
  hash: <hash> , // 是根据将ts和writeToken按照顺序拼凑起来的字符串进行MD5计算得到的值
});

其中 ptime、sign 和 hash 都要从服务端获取,服务端的代码示例(PHP)如下:

/* 
userid、secretkey、writeToken都可以在「云点播管理后台 -> 设置 -> API接口」页面中找到。
*/
$userid = "your userid";
$secretkey = "your sercrety";
$writeToken = "your writeToken";

$ptime = time() * 1000;
$sign = md5($secretkey . $ptime);
$hash = md5($ptime . $writeToken);

添加上传文件进入上传列表

fileSetting = { // 文件上传相关信息设置
  title: <title>,  // 标题
  desc: <desc>,  // 描述
  cataid: <cataid>,  // 上传分类目录ID
  tag: <tag>,  // 标签
  luping: 0,  // 是否开启视频课件优化处理,对于上传录屏类视频清晰度有所优化:0为不开启,1为开启
  keepsource: 0  // 是否源文件播放(不对视频进行编码):0为编码,1为不编码
};

调用 PlvVideoUpload 实例的 addFile(file, events, fileSetting) 方法,添加文件到文件列表,该方法返回一个 UploadManager 对象:

var uploadManager = videoUpload.addFile(
  file, // file 为待上传的文件对象
  { 
    FileStarted: function(uploadInfo) { // 文件开始上传回调
        console.log("文件上传开始: " + uploadInfo.fileData.title);
    },
    FileProgress: function(uploadInfo) { // 文件上传过程返回上传进度信息回调
        console.log("文件上传中: " + (uploadInfo.progress * 100).toFixed(2) + '%');
    },
    FileStopped: function(uploadInfo) { // 文件暂停上传回调
        console.log("文件上传停止: " + uploadInfo.fileData.title);
    },
    FileSucceed: function(uploadInfo) { // 文件上传成功回调
        console.log("文件上传成功: " + uploadInfo.fileData.title);
    },
    FileFailed: function(uploadInfo) { // 文件上传失败回调
        console.log("文件上传失败: " + uploadInfo.fileData.title);
    }
  },
  fileSetting
);

上传控制

videoUpload.startAll()  //开始上传所有文件
videoUpload.stopAll()  //停止上传所有文件
videoUpload.clearAll()  //清空文件列表
videoUpload.stopFile(id)  //暂停上传指定文件;id为文件id,和对应的UploadManager实例的id一致。
videoUpload.resumeFile(id)  //开始/继续上传指定文件
videoUpload.removeFile(id)  //删除指定文件

API 文档

见源代码中的 docs 文件夹或 点击此处打开

示例代码

请前往GitHub查看。
源代码中的 demo 文件夹包含两个示例:

  • dev.html & dev.js:以模块化方式引入 SDK 的示例。在本项目根目录下运行 npm run dev ,打开浏览器访问 http://127.0.0.1:14002/index.html 即可。
  • index.html & index.js:以 script 标签引入 SDK 的示例。

此外,还要修改 JS 文件中的 getPolyvAuthorization 变量为有效的请求地址,才能正常使用。

错误代码

错误代码 描述
102 用户剩余空间不足
110 文件重复
111 拦截文件类型不在 acceptedMimeType 中的文件
112 文件已经开始上传或已上传完毕,禁止修改文件信息

Change log

日期 版本 更新内容
2019-03-08 v1.0.0 正式版发布
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

如何进行手机投屏(视频)

视频说明

如何进行手机投屏?
1.第一步,电视(或盒子)上安装乐播投屏APP,然后打开乐播投屏
2.第二步,将手机和电视处于同一个WIFI网络中
3.第三步,在手机上打开想投屏的视频,点击右上角的TV投屏按钮
4.第四步,在投屏设备列表里选择电视或者盒子,进入连接

连接成功后,就可以在电视上观看手机APP的视频了。

 

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

删除视频字幕

接口URL

https://api.polyv.net/v2/video/{userId}/srt/delete

接口说明

删除视频字幕。

支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
userid true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vid true string 视频ID,例如 e6b23c6f51938e173b8e573b881f7723_e
ranks true string 字幕序号列表,序号从1开始,多个以英文逗号分隔,例如 2,3

返回结果

{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": {}
}

失败返回json(不带jsonp)

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

响应说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userid. userid 不存在
400 the sign is not right. 加密串不正确
401 vid is blank. vid 为空
401 ranks is blank. ranks 为空
402 cannot find the video. 找不到视频
402 invalid srt ranks. 无效的视频字幕序号

PHP请求示例

<?php
header("Content-type: text/html; charset=utf-8");
$userid="用户id";
$vid="视频id";
$ranks="视频序号";
$ptime=time()*1000;//13位
$secretkey="填写secretkey";
$str="ptime=".$ptime."&vid=".$vid."&ranks=".$ranks.$secretkey;

$hash=strtoupper(sha1($str));
$url="https://api.polyv.net/v2/video/$userid/srt/delete?ptime=$ptime&sign=$hash&vid=$vid&ranks=$ranks";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "8205ac89d30adeb51a6f8bf1a1df6f63_8"

2、将请求参数按照参数名字典顺序排列

ptime = "1492591990000"
vid = "8205ac89d30adeb51a6f8bf1a1df6f63_8"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

ptime=1492591990000&vid=8205ac89d30adeb51a6f8bf1a1df6f63_8tIQp4ATe9Z

4、生成签名sign

7D0B965C4F4E9B2B4325AC098F29DAE2025C4F5C
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获取视频字幕

接口URL

https://api.polyv.net/v2/video/{userId}/srt/list

接口说明

获取视频字幕列表。

支持格式

JSON

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
userid true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vid true string 视频ID,例如 e6b23c6f51938e173b8e573b881f7723_e

返回结果

{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": {
        "srts": [
            {
                "rank": 1,
                "name": "fantastic-tra"
            },
            {
                "rank": 2,
                "name": "fantastic-sim"
            }
        ]
    }
}

失败返回json(不带jsonp)

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

字段描述

字段 说明
rank 序号,从1开始
name 字幕名称

响应说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userid. userid不存在
400 the sign is not right. 加密串不正确
401 vid is blank. vid为空
402 cannot find the video. 找不到视频

PHP请求示例

<?php
header("Content-type: text/html; charset=utf-8");
$userid="用户id";
$vid="视频id";
$ptime=time()*1000;//13位
$secretkey="填写secretkey";
$str="ptime=".$ptime."&vid=".$vid.$secretkey;

$hash=strtoupper(sha1($str));
$url="https://api.polyv.net/v2/video/$userid/srt/list?ptime=$ptime&sign=$hash&vid=$vid";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "8205ac89d30adeb51a6f8bf1a1df6f63_8"

2、将请求参数按照参数名字典顺序排列

ptime = "1492591990000"
vid = "8205ac89d30adeb51a6f8bf1a1df6f63_8"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

ptime=1492591990000&vid=8205ac89d30adeb51a6f8bf1a1df6f63_8tIQp4ATe9Z

4、生成签名sign

7D0B965C4F4E9B2B4325AC098F29DAE2025C4F5C
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获取用户下所有播放器列表接口

接口URL

http://api.polyv.net/v2/play/{userid}/player-list

接口说明

获取用户下的播放器列表。

支持格式

JSON

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
userid true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值

返回结果

{
  "code": 200,
  "status": "success",
  "message": "success",
  "data": [
    {
      "playerName": "默认",
      "playerId": "test1",
      "date": "2018-11-15 17:15:29",
      "isDefault": 1
    },
    {
      "playerName": "player2",
      "playerId": "test2",
      "date": "2018-11-15 17:21:07",
      "isDefault": 0
    }
  ]
}

失败返回json

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

字段描述

字段 说明
playerName 播放器名称
playerId 播放器id
date 创建日期
isDefault 是否是默认播放器,是:1, 否:0

响应说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userid. userid不存在
400 the sign is not right. 加密串不正确

PHP请求示例

<?php
header("Content-type: text/html; charset=utf-8");
$userid="用户id";
$ptime=time()*1000;//13位
$secretkey="填写secretkey";
$str="ptime=".$ptime.$secretkey;

$hash=strtoupper(sha1($str));
$url="https://api.polyv.net/v2/play/$userid/player-list?ptime=$ptime&sign=$hash";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"

2、将请求参数按照参数名字典顺序排列

ptime = "1492591990000"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

ptime=1492591990000tIQp4ATe9Z

4、生成签名sign

C2F695EC11A40C5504A883CEB692CA16F80FC2C1
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

视频清晰度与码率

随着4G普及、光纤调速,网络传输迅速提升,为优化用户播放体验。保利威将对视频转码文件的默认码率和分辨率进行适当调整。
调整之后,画质将得到近一步提升,满足用户对更高清视频播放需求。
改动详情如下表所示:(码率单位:kbps)
视频码率
POLYV将于2018年11月15日进行视频默认码率调整,但不影响老用户使用;老用户将保持现有默认码率设定,如需更换成新码率,请联系保利威客服团队;
2018年11月16日00:00后注册的新用户,将默认使用新的码率及规则进行编码。

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获取微信分享页的视频相关信息接口

接口URL

http://api.polyv.net/v2/video/wechat-share/{userid}/video-info

接口说明

获取微信分享页的视频相关信息。

支持格式

JSON

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
userid true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
vid true string 视频id

返回结果

{
  "code": 200,
  "status": "success",
  "message": "success",
  "data": {
    "videoDesc": "<p></p><p style=\"text-align:center;\"><b>test</b></p>",
    "originalPlayTimes": 0,
    "videoCoverImg": "http://img.videocc.net/uimage/8/8205ac89d3/a/8205ac89d3835d52fa9f84752f8386aa_0.jpg",
    "videoIcon": "http://img.videocc.net/uimage/8/8205ac89d3/first_image/9f00cf54-117e-4fc5-932d-4b815717e689_s.jpg",
    "videoTitle": "测试gensee",
    "originalLikeNum": 0
  }
}

失败返回json(不带jsonp)

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

字段描述

字段 说明
videoCoverImg 视频封面图
videoTitle 视频微信分享标题
videoDesc 视频描述
videoIcon 视频图标
originalPlayTimes 初始播放量
originalLikeNum 初始点赞量

响应说明

错误代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userid. userid不存在
400 the sign is not right. 加密串不正确
401 vid is blank. vid为空
402 cannot find the video. 找不到视频
500 get video info failed. 后台查询出错

PHP请求示例

<?php
header("Content-type: text/html; charset=utf-8");
$userid="用户id";
$vid="视频id";
$ptime=time()*1000;//13位
$secretkey="填写secretkey";
$str="ptime=".$ptime."&vid=".$vid.$secretkey;

$hash=strtoupper(sha1($str));
$url="https://api.polyv.net/v2/video/wechat-share/$userid/video-info?ptime=$ptime&sign=$hash&vid=$vid";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);
curl_close($ch);
//打印获得的数据
print_r($output);
?>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "8205ac89d30adeb51a6f8bf1a1df6f63_8"

2、将请求参数按照参数名字典顺序排列

ptime = "1492591990000"
vid = "8205ac89d30adeb51a6f8bf1a1df6f63_8"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

ptime=1492591990000&vid=8205ac89d30adeb51a6f8bf1a1df6f63_8tIQp4ATe9Z

4、生成签名sign

7D0B965C4F4E9B2B4325AC098F29DAE2025C4F5C
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

修改视频广告

接口URL

http://api.polyv.net/v2/advertising/{userid}/edit

接口说明

提供修改广告接口

支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
userid true string 用户id,路径参数
ptime true string 当前13位毫秒级时间戳,3分钟内有效
sign true string 签名,40位大写的sha1值
adid true string 广告id
startDate false string 广告开始日期,格式为yyyy-MM-dd
endDate false string 广告结束日期,格式为yyyy-MM-dd
title false string 广告标题
file false file 广告素材,片头、片尾广告素材支持:JPEG,GIF,PNG,FLV,MP4;暂停广告支持:SWF,PNG,JPEG,GIF;弹窗广告支持PNG,JPEG,GIF.
size false int 广告时长
cataids false string 分类id,关联多分类时,以英文逗号(,)分隔
location false int 广告类型,片头-1,暂停-2,片尾-3,弹窗-4
popLocation false int 广告弹窗位置,广告类型为弹窗时必填,右下角-1,右上角-2,左下角-3,左上角-4
popUpTime false int 弹窗出现的时间,单位秒,广告类型为弹窗时必填
status false int 广告状态,已上线-10,待上线-1,已下线-0
upTime false string 广告开始时间,格式为HH:mm:ss,默认为00:00:00
offTime false string 广告结束时间,格式为HH:mm:ss,默认为23:59:59
note false string 广告描述
skipAd false string Y表示开启跳过广告,N表示关闭跳过广告。仅片头广告有效
skipOffset false string 多少秒后允许跳过,当skipAd为Y时,该字段为必要参数
skipButtonLabel false string 跳过按钮标签,默认为跳过

返回结果

{
  "code": 200, 
  "status": "success", 
  "message": "success", 
  "data": true
}

失败返回json(不带jsonp)

{
  "code": 400,
  "status": "error",
  "message": "ptime is too old.",
  "data": ""
}

响应说明

响应代码 message 说明
400 sign can not be empty. 加密串为空
400 ptime is too old. 时间戳过期
400 ptime is illegal. 时间戳参数格式不对或者超过当前时间3分钟
400 Could not find user by userid. userid不存在
400 the sign is not right. 加密串不正确
400 file is empty. 没上传文件或为空文件
400 illegal file type. 非法的文件类型
400 upload file failed. 上传文件失败
400 startDate or endDate error. 日期格式不正确或开始日期大于结束日期
400 upTime or offTime error. 时间格式不正确或开始时间大于结束时间
400 param status can not be empty. 广告状态不能为空
400 title can not be empty. 广告标题不能为空
400 cataids length is not right. 分类数量不正确
400 exist the same cataid. 存在相同的cataid
400 cataid type error. cataid类型错误
400 cata not exist. 分类不存在
400 cata conflict. 不能同时存在父分类和子分类
400 param location error. 广告类型错误
400 param addrurl error. 链接地址错误
400 pop location error. 弹窗位置错误
400 pop up time error. 弹窗出现时间错误
400 admatter is not exist. 广告不存在
400 illegal skipOffset. 开启了跳过广告,但skipOffset参数不正确(不得小于0或大于广告时长)
400 location type not supported to skipAd. 广告类型不支持开启跳过广告
400 save fail. 服务器异常导致失败
200 success 提交成功

PHP请求示例

<?php
header("Content-type: text/html; charset=utf-8");
$userid="用户id";
$secretkey="用户secretkey";

$params = array(
    'ptime' => time()*1000,
    'adid' => 'a205e415d05a42ca8d60',
    'title' => '只修改title'
);

# 创建排序后的字典
foreach ($params as $key=>$value){
    $arr[$key] = $key;
}
sort($arr);
$str='';
$length=count($arr);
foreach ($arr as $k => $v) {
    $str = $str.$v.'='.$params[$v];
    if($k < $length-1) {
      $str = $str.'&';
    }
}
$hash=strtoupper(sha1($str.$secretkey));

$params['sign']=$hash;
$url="http://api.polyv.net/v2/advertising/${userid}/edit?".http_build_query($params);
?>
<html>
<form action="<?php echo $url?>" method="post" enctype='multipart/form-data' >
    文件:<input type="file" name="file" id="image" /><br>
    <input type="submit" value="点击上传"/>
</form>
</html>

签名规则:

将非空的请求参数按照参数名字典顺序排列,连接参数名与参数值,并在尾部加上secretkey,生成40位大写SHA1值,作为sign。 以下是示例过程:

1、请求参数为

ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"
format = "json"

2、将请求参数按照参数名字典顺序排列

format = "json"
ptime = "1492591990000"
vid = "382839019131be68715e9455f8d0971a_3"

3、连接字符串
连接参数名与参数值,并在尾部加上secretkey(secretkey的值为tIQp4ATe9Z),如下:

format=json&ptime=1492591990000&vid=382839019131be68715e9455f8d0971a_3tIQp4ATe9Z

4、生成签名sign

50BF9B165630A8047EB1D17D95A469CC51FF754E
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...