SparkAPI_开发指南_v2.1.4.pages

Similar documents
SparkAPI_开发指南_v2.1.4.pages

SparkAPI_开发指南_v2.1.3

SparkAPI_开发指南_v2.0.4

SparkAPI_v2.3.1.pages

SparkAPI_v2.3.2.pages

南華大學數位論文

2 Requirements Documentation Doc Name Doc No. 1.0 Version No. Total Page Generated By V6.0.0 Generated Date 2011/10/21 Checked By Checked Date 2011/10

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复


目 录 API 接 口..3 相 关 说 明...3 系 统 参 数 说 明..3 返 回 参 数 说 明...3 接 口 说 明...4 视 频 管 理 视 频 上 传 初 始 化 (Web 方 式 ) 4 2. 视 频 上 传 (Web 方 式 ) 4 3. 视 频 断 点 续 传

17 Chapter Video/Audio API 17-1 <video> <audio> 17-2 <video> <audio>

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

新美大酒店开放平台SDK(.NET版)使用说明.pages

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

获取 Access Token 1 基础概念 access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要妥善保存,access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新

060522達文西密碼_全_.PDF

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

PlayerAPI_v1.0.5.pages

Microsoft Word - FPKLSC_21.docx

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

無障礙網頁開發規範二版(草案)

「西醫基層總額支付委員會《第28次委員會議紀錄

停止混流接口 请注意 : 该功能需要联系 ZEGO 技术支持开通 1 接口调用说明 http 请求方式 : POST/FORM, 需使用 https 正式环境地址 access_token=access_token (http

保母人員丙級應檢資料第二部份 doc

ASP 電子商務網頁設計

(Microsoft Word - \261M\303D\263\370\247i\247\3572.doc)

昭英,

2 SGML, XML Document Traditional WYSIWYG Document Content Presentation Content Presentation Structure Structure? XML/SGML 3 2 SGML SGML Standard Gener

河 南 蓝 皮 书 文 化 (2008) 网 络 文 学 主 要 是 指 在 网 上 原 创 的 文 学 作 品 作 为 网 络 文 化 的 主 力 部 分, 网 络 文 学 的 发 展 在 近 年 来 势 不 可 挡 作 为 凭 借 新 兴 媒 介 兴 起 的 文 学, 网 络 文 学 与 传 统

21 flash

《將進酒》

CDWA Mapping. 22 Dublin Core Mapping

Microsoft Word - ch02.doc

团 学 要 闻 我 校 召 开 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 3 月 17 日, 我 校 共 青 团 五 届 九 次 全 委 ( 扩 大 ) 会 议 在 行 政 办 公 楼 五 楼 会 议 室 举 行, 校 团 委 委 员 各 院 ( 系 ) 团 委 书 记 校 学 生

2 中 国 农 业 资 源 与 区 划 2016 年 可, 有 效 减 少 确 定 中 存 在 的 主 观 性 和 人 情 倾 向 三 要 健 全 精 准 扶 贫 大 数 据 平 台 2016 年, 全 国 将 建 设 扶 贫 开 发 大 数 据 平 台, 各 地 要 在 精 准 识 别 的 基 础

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

05 01 accordion UI containers 03 Accordion accordion UI accordion 54

PlayerAPI_v1.0.0

Microsoft Word - PHP7Ch01.docx

第2章 数据类型、常量与变量

Information for consent

目录 1. 视频上传接口 ( 已集成在 SDK 中 ) 请求上传 web 端请求上传 上传 通知上传完成 取消上传 获取视频状态 获取视频信息

p.2 1 <HTML> 2 3 <HEAD> 4 <TITLE> </TITLE> 5 </HEAD> 6 7 <BODY> 8 <H3><B> </B></H3> 9 <H4><I> </I></H4> 10 </BODY> </HTML> 1. HTML 1. 2.

使用Cassandra和Spark 2.0实现Rest API服务

变 量 的 主 要 作 用 是 存 取 数 据 提 供 存 放 信 息 的 容 器 对 于 变 量 必 须 明 确 变 量 的 命 名 变 量 的 类 型 变 量 的 声 明 及 其 变 量 的 作 用 域 JavaScript 是 一 种 弱 类 型 语 言, 也 就 是 说, 在 声 明 变 量

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

01

2005 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A. Sun Sun Berkeley BSD UNIX X/Open Company, Ltd. / Sun Sun Microsystems Su

我 们 再 看 到 尼 西 米 记, 也 会 发 现 当 时 神 的 百 姓 有 一 颗 单 纯 受 教 的 心, 他 们 单 纯 的 听 从 神 的 教 导, 敬 畏 遵 从 神 的 训 诲 当 他 们 明 白 自 己 的 罪 孽 时, 个 个 俯 伏 在 地, 为 罪 痛 悔 哭 泣 在 整 个

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

Microsoft PowerPoint ShengYang Presentation Slides_240609

天仁期末個人報告1.PDF

Adobe AIR 安全性

乐视云视频发行平台 操作手册 V1.1

1 2 <CAHhX17dox1o7cv63SgXVrJRs

静态分析 投放文件 行为分析 互斥量 (Mutexes) 执行的命令 创建的服务 启动的服务 进程 cmd.exe PID: 2520, 上一级进程 PID: 2556 cmd.exe PID: 2604, 上一级进程 PID: 2520 访问的文件 C:\Users\test\AppData\Lo


今天 年春季号 总 92 期

*

( ) / / / / / / /

(Microsoft Word - 8\244T\244\362\277\337\272]\244W\265L\246W.doc)

Microsoft Word - 專家本色 doc


但, 你 应 该 听 过 我 们 走 在 大 路 上 这 首 歌, 或 许 还 知 道 革 命 人 永 远 是 年 轻 那 支 歌 ; 并 且, 几 乎 可 以 肯 定, 你 在 戴 红 领 巾 的 那 阵, 必 然 唱 过 牛 儿 还 在 山 坡 吃 草, 放 牛 的 却 不 知 道 哪 儿 去

2 临 终 助 念 答 问 序 临 终 关 怀, 由 佛 门 净 宗 古 来 祖 师 大 德 提 倡 助 念 往 生, 现 今 已 渐 为 社 会 大 众 所 重 视, 在 台 湾, 台 大 长 庚 等 各 大 医 院, 也 都 设 有 助 念 室 ; 大 陆 上 许 多 道 场, 也 有 专 为

校园之星

<4D F736F F F696E74202D FA8BEA861B8EAB7BDBEE3A658BB50C0B3A5CE28B773A6CBA5AB29>

之 原 則 及 國 防 部 訂 頒 國 軍 列 管 國 有 不 動 產 提 供 非 軍 方 單 位 使 用 處 理 原 則 規 定 不 符, 仍 應 以 出 租 方 式 辦 理 惟 可 就 偏 遠 地 區 提 供 官 兵 金 融 水 電 服 務 使 用 部 分, 研 議 降 低 租 金 標 準, 報

chineseall

釋禪波羅蜜次第法門

证券代码: 证券简称:锦江股份 公告编号:【】

1700 装 卸 搬 运 7645 装 卸 搬 运 服 务 2100 建 筑 7410 工 程 服 务 11% 装 卸 搬 运 服 务, 是 指 使 用 装 卸 搬 运 工 具 或 者 人 力 畜 力 将 货 物 在 运 输 工 具 之 间 装 卸 现 场 之 间 或 者 运 输 工 具 与 装 卸

前 言 教 育 无 小 事, 它 成 就 着 学 生 的 未 来 作 为 教 师, 他 们 无 时 无 刻 不 在 关 注 着 学 生 的 成 长 学 生 的 未 来 学 生 就 像 一 朵 含 苞 待 放 的 花 朵, 需 要 老 师 们 的 细 心 呵 护, 给 学 生 需 要 的 东 西, 而

《盗墓笔记》 南派三叔/著

<CFFBB7D1D5DFD0D0CEAAD1A72E6D7073>

独立学院建设与发展


Microsoft Word - 澎湖田調報告-宏達組9804.doc

平 凡 足 迹 李 本 川 作 者 为 中 国 科 学 院 海 洋 研 究 所 研 究 员,1935 年 生, 山 东 荣 成 人 我 今 年 63 岁 了 大 前 年 丈 夫 和 儿 子 在 一 个 月 内 先 后 离 开 了 人 世, 女 儿 又 已 出 嫁, 现 在 是 孑 然 一 身 我 是

TWLOM060929

修订记录 : 版本号 修订人 修订日期 修订描述 V 创建初稿 修改渠道应用查询接口,xtype 支持多个, 增加搜索 keyword 参数 渠道应用下载接口返回增加 :versioncode versionname

标题

/

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

台北老爺校外實地參訪結案報告




Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

範本檔

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

糖尿病食譜


Transcription:

Spark API 开发指南 版本 : 2.2.0 日期 : 2015-03-06 北京梦之窗数码科技有限公司

目录 1. 概述... 1 2. 通信约定... 1 2.1 HTTP 方法... 1 2.2 返回格式... 1 2.3 编码格式... 1 2.4 加密... 1 2.5 接 口访问次数限制... 2 3. HTTP 接 口... 2 3.1 获取 用户信息... 2 3.2 获取视频信息... 3 3.3 批量获取视频信息... 5 3.4 获取视频播放代码... 7 3.5 编辑视频信息... 8 3.6 删除视频... 9 3.7 获取视频分类... 10 3.8 搜索视频... 11 4. Flash 接 口... 13 4.1 视频上传... 13 附录 1. HTTP 通信加密算法... 15 附录 2. Flash 和 JavaScript 交互... 16

1. 概述 利 用 Spark API 可以与 CC 视频 Spark 云进 行对接, 使 用 Spark 云的主要视频功能 当前 Spark API 的版本号为 2.1, 具有上传 播放 获取视频信息 获取 用户信息 删除视频 获取视频分类等接 口 目前 Spark API 仅对合作 方开启, 如果您有使 用的需求, 请通过 CC 视频后台申请 API Key, 通过审核后才能使 用 Spark API 2. 通信约定 Spark API 的远程通信接 口基于 HTTP 协议, 并有以下约定 : 2.1 HTTP 方法 所有接 口采 用 GET 请求 2.2 返回格式 接 口的返回格式包括 XML 格式和 JSON 格式, 编码均为 UTF-8 对于不同的接 口, 正确的返回结果的格式会在每个接 口中单独定义, 错误的返回结果具有统 一的形式, 如下所 示 : <error>error_code</error> error : ERROR_CODE 实际中, 下表中的某 一个具体的错误码会替换掉上 面的 ERROR_CODE: 错误码 INVALID_REQUEST SPACE_NOT_ENOUGH SERVICE_EXPIRED PROCESS_FAIL TOO_MANY_REQUEST PERMISSION_DENY 用户输 入错误 用户剩余空间不 足 用户服务已经过期服务器处理失败访问过于频繁 用户服务 无权限 2.3 编码格式 Spark API 只接受 UTF-8 格式编码的信息, 返回的数据也都是 UTF-8 编码的 当需要通过 GET 请求传递时,QueryString 里 面的 value 值都需要进 行 URL Encode 之后, 再进 行传递 2.4 加密 所有的 HTTP 通信都是加密的, 加密的核 心思想是将原始的 QueryString 转换为和请求时间相关的 HashedQueryString, 我们称这个加密算法为 THQS 算法 关于 THQS 算法的细节请参 见附录 1 第 1 页共 16 页

2.5 接 口访问次数限制 当某 一个接 口的访问频率在 一分钟之内超过 100 次的时候, 该 用户的 API 功能将被禁 用, 之后所有请求都将失效 如果上述阈值 无法满 足您的正常需求的时候, 可以联系 CC 客服申请提升 API 的请求频率 3. HTTP 接 口 3.1 获取 用户信息 通过该接 口可以获取指定 用户的账户信息, 地址为 : http://spark.bokecc.com/api/user 需要传递以下 : userid format 用户 id, 不可为空 返回格式,xml 或 json 返回数据 user 包含如下字段 : account version expired space traffic 用户账户版本信息到期时间 用户空间信息 用户流量信息 space 包含如下字段 : total remain used 用户空间总量, 单位 G 用户空间剩余总量, 单位 G 用户空间使 用总量, 单位 G traffic 包含如下字段 : total remain used 用户流量总量, 单位 G 用户剩余流量 大 小, 单位 G 用户已使 用流量 大 小, 单位 G XML 格式的返回信息如下 : 第 2 页共 16 页

<user> <account>test@test.com</account> <version><![cdata[ 试 用版 ]]></version> <expired>2011-06-06</expired> <space> <total>2</total> <remain>1.9</remain> <used>0.1</used> </space> <traffic> <total>5</total> <remain>4.8</remain> <used>0.2</used> </traffic> </user> JSON 格式的返回信息如下 : "user": "account":"test@test.com", "version":" 试 用版 ", "expired":"2011-06-06", "space": "total":2, "remain":1.9, "used":0.1, "traffic": "total":5, "remain":4.8, "used":0.2 3.2 获取视频信息 通过该接 口可以获取指定 用户的有效视频的信息, 地址为 : http://spark.bokecc.com/api/video 需要传递以下 : userid videoid format 用户 id, 不可为空视频 id, 不可为空返回格式,xml 或 json 返回数据 video 包括如下字段 : 第 3 页共 16 页

id title desp tags duration category image imageindex image-alternate 视频 ID 视频标题视频描述视频标签视频时 长, 单位秒视频分类 ID 视频截图地址视频截图序号视频截图排列信息 image-alternate 包括如下字段 : index url 视频截图排列序号 视频截图地址 XML 格式的返回信息如下 : <video> <id>01234567</id> <title><![cdata[ 视频标题 ]]></title> <desp><![cdata[ 视频描述 ]]></desp> <tags><![cdata[ 标签 1 标签 2 标签 3]]></tags> <duration>12345</duration> <category>12345</category> <image>http://image.bokecc.com/abc.jpg</image> <imageindex>1</imageindex> <image-alternate> <index>0</index> <url>http://image.bokecc.com/abc0.jpg</url> </image-alternate> <image-alternate> <index>1</index> <url>http://image.bokecc.com/abc1.jpg</url> </image-alternate>... </video> JSON 格式的返回信息如下 : 第 4 页共 16 页

"video": "id":"01234567", "title":" 视频标题 ", "desp":" 视频描述 ", "tags":" 标签 1 标签 2 标签 3", "duration":12345, "category":"12345", "image":"http://image.bokecc.com/abc.jpg", "imageindex":1, "image- alternate":[ "index":0, "url":"http://image.bokecc.com/abc0.jpg",... ] 3.3 批量获取视频信息 通过该接 口可以获取指定 用户的 一批有效视频 ( 不包括删除 正在处理的视频 ) 的信息, 地址为 : http://spark.bokecc.com/api/videos 需要传递以下 : userid videoid_from videoid_to 用户 id, 不可为空起始 videoid, 若为空, 则从上传的第 一个视频开始终 止 videoid, 若为空, 则到最后 一个上传的视频 num_per_page 返回信息时, 每 页包含的视频个数注 : 允许范围为 1~100 page format 当前 页码 返回格式,xml 或 json 返回数据 videos 包含以下字段 : total video 返回视频数量 视频信息 video 包含以下字段 : 第 5 页共 16 页

id title desp tags duration category image imageindex image-alternate 视频 ID 视频标题视频描述视频标签视频时 长, 单位秒视频分类 ID 视频截图地址视频截图序号视频截图排列信息 image-alternate 包含以下字段 : index url 视频截图排列序号 视频截图地址 XML 格式的返回信息如下 : <videos> <total>100</total> <video> <id>01234567</id> <title><![cdata[video Title]]></title> <desp><![cdata[video Description]]></desp> <tags><![cdata[tag1 tag2 tag3]]></tags> <duration>12345</duration> <category>12345</category> <image>http://image.bokecc.com/abc.jpg</image> <imageindex>1</imageindex> <image-alternate> <index>0</index> <url>http://image.bokecc.com/abc0.jpg</url> </image-alternate> <image-alternate> <index>1</index> <url>http://image.bokecc.com/abc1.jpg</url> </image-alternate>... </video>... </videos> JSON 格式的返回信息如下 : 第 6 页共 16 页

"videos": "total":100, "video":[ "id":"01234567", "title":"video Title", "desp":"video Description", "tags":"tag1 tag2 tag3", "duration":12345, "category":"12345", "image":"http://image.bokecc.com/abc.jpg", "imageindex":1, "image-alternate":[ "index":0, "url":"http://image.bokecc.com/abc0.jpg", ], ] 3.4 获取视频播放代码 通过该接 口可以获取指定视频的视频播放 HTML 代码段, 地址为 : http://spark.bokecc.com/api/video/playcode 需要传递以下 : videoid userid playerid player_width player_height auto_play format 视频 id, 不可为空 用户 id, 不可为空播放器 id, 若为空则返回默认播放器播放器宽度, 单位 px 播放器 高度, 单位 px 是否 自动播放,true 或 false 返回格式,xml 或 json 返回数据 video 包含以下字段 : playcode 嵌 入 网 页的播放代码 XML 格式的返回信息如下 : 第 7 页共 16 页

<video> <playcode> <![CDATA[<script src='http://p.bokecc.com/player? vid=96479767c315e6a9&siteid=1936d297411c3a27&autostart=false&width=600&height=490&playerid =6ED7421AB96B522E&playertype=1' type='text/javascript'></script>]]> </playcode> </video> JSON 格式的返回信息如下 : "video": "playcode":"<script src='http://p.bokecc.com/player? vid=96479767c315e6a9&siteid=1936d297411c3a27&autostart=false&width=600&height=490&playerid =6ED7421AB96B522E&playertype=1 type='text/javascript'></script>" 3.5 编辑视频信息 通过该接 口可以编辑指定视频的信息, 地址为 : http://spark.bokecc.com/api/video/update 需要传递以下 : videoid userid title tag description categoryid playurl imageindex format 视频 id, 不可为空 用户 id, 不可为空 视频标题 视频标签 视频描述 视频 子分类 id 视频播放 页 面地址, 如果不编辑播放地址, 请勿加 入此 视频封 面截图序号, 如果不编辑封 面截图, 请勿加 入此注 : 只可编辑正常可播放状态的视频截图 返回格式,xml 或 json 返回数据 video 包含如下字段 : 第 8 页共 16 页

id title desp tags category playurl imageindex 视频 ID 视频标题视频描述视频标签视频分类 ID 视频播放 页 面地址视频截图序号 XML 格式的返回信息如下 : <video> <id>01234567</id> <title><![cdata[video Title]]></title> <desp><![cdata[video Description]]></desp> <tags><![cdata[tag1 tag2 tag3]]></tags> <category>12345</category> <playurl>http://xxxx/1.html</playurl> <imageindex>1</imageindex> </video> JSON 格式的返回信息如下 : "video": "id":"01234567", "title":"video Title", "desp":"video Description", "tags":"tag1 tag2 tag3", "category":"12345", "playurl":"http://xxxx/1.html", "imageindex":1 3.6 删除视频 通过该接 口可以删除指定视频的信息, 地址为 : http://spark.bokecc.com/api/video/delete 需要传递以下 : videoid userid format 视频 id, 不可为空 用户 id, 不可为空返回格式,xml 或 json XML 格式的返回信息如下 : 第 9 页共 16 页

<result>ok</result> JSON 格式的返回信息如下 : "result":"ok" 3.7 获取视频分类 通过该接 口可以获取指定 用户创建的全部视频分类, 地址为 : http://spark.bokecc.com/api/video/category 需要传递以下 : userid format 用户 id, 不可为空 返回格式,xml 或 json 注 : 返回结果中的 level 包括 BASIC 和 PREMIUM,BASIC 中只包含 一个默认 父分类, 无法创建 自定义 父分类, PREMIUM 版本中包含 用户创建的 父分类 返回数据 video 包含如下字段 : level category 视频分类等级 视频分类信息 category 包含如下字段 : id name sub-category 分类 ID 分类名称 子分类信息 sub-category 包含如下字段 : id name 子分类 ID 子分类名称 XML 格式的返回信息如下 : 第 10 页共 16 页

<video> <level>basic</level> <category> <id>123</id> <name><![cdata[category1]]></name> <sub-category> <id>456</id> <name><![cdata[sub category1]]></name> <sub-category>... </category>... </video> JSON 格式的返回信息如下 : "video": "level":"premium", "category":[ "id":123, "name":"category1", "sub-category":[ "id":456, "name":"sub category1",... ],... ] 3.8 搜索视频通过该接 口可以搜索指定信息的视频, 地址为 : http://spark.bokecc.com/api/videos/search 需要传递以下 : 第 11 页共 16 页

userid q 用户 id, 不可为空 查询条件, 不可为空 格式 : 查询字段 : 查询内容查询字段 : 目前只 支持 TITLE 查询内容 : 查询关键字 注 : 格式中的 : 为英 文半 角 Example:q=TITLE:test sort 查询结果排序, 不可为空 格式 : 排序字段 : 排序 方式排序字段 :CREATION_DATE 或 FILE_SIZE 排序 方式 :ASC 或 DESC 注 : 格式中的 : 为英 文半 角 Example:sort=CREATION_DATE:DESC categoryid 视频 子分类 id, 如果不查询指定分类下的视频, 请勿加 入此 num_per_page 返回信息时, 每 页包含的视频个数注 : 阈值为 1~100 page format 当前 页码 返回格式,xml 或 json 返回数据 videos 包含如下字段 : total video 返回视频数量 视频信息 video 包含如下字段 : id title desp tags duration category creation-date filesize image 视频 ID 视频标题视频描述视频标签视频时 长, 单位秒视频分类 ID 视频创建时间视频 文件 大 小, 单位字节视频截图地址 XML 格式的返回信息如下 : 第 12 页共 16 页

<videos> <total>100</total> <video> <id>01234567</id> <title><![cdata[video Title]]></title> <desp><![cdata[video Description]]></desp> <tags><![cdata[tag1 tag2 tag3]]></tags> <duration>12345</duration> <category>12345</category> <creation-date>2012-10-29 15:16:50</creation-date> <filesize>4174340</filesize> <image>http://image.bokecc.com/abc.jpg</image>... </video>... </videos> JSON 格式的返回信息如下 : "videos": "total":100, "video":[ "id":"01234567", "title":"video Title", "desp":"video Description", "tags":"tag1 tag2 tag3", "duration":12345, "category":"12345", "creation-date":"2012-10-29 15:16:50", "filesize":4174340, "image":"http://image.bokecc.com/abc.jpg", ] 4. Flash 接 口 Spark API 中所有的 Flash 接 口需要 Flash 插件的版本在 10.1 以上才有效, 使 用前请确保 Flash 插件版本符合要求 4.1 视频上传 在上传视频的过程中, 不 用与 Spark 平台进 行 HTTP 通信, 使 用 JavaScript 和 Spark 平台提供的 Flash 进 行交互即可完成 关于如何在 网 页中嵌 入 Flash 以及如何和 Flash 进 行交互, 请参阅附录 2 上传接 口 用到的所有 JavaScript 函数定义 见下表 : 第 13 页共 16 页

函数定义 on_spark_selected_file(file_name, file_size) on_spark_upload_validated(status, videoid) on_spark_upload_progress(progress) file_name: 上传 文件名 file_size: 上传的 文件 大 小, 单位字节 status: 验证结果 videoid: 视频 id progress: 上传进度 正确时,0~100 之间的整数, 包括 0 和 100; 错误时, 返回 -1. 网 页嵌 入 Spark 平台提供的上传 Flash 时, 需要传递下列 : Flash (flashvars) progress_interval notify_url 回调进度函数的时间间隔, 默认 1 秒 视频处理完毕后的通知地址 上传 文件的过程 一共分为四步 : 第 一步, 选择 文件 Spark 平台提供 一个透明的 Flash 进 行 文件上传, 地址如下 : http://p.bokecc.com/flash/api/uploader.swf 由于它是透明的, 所以可以置于任何 一个 HTML 元素的上 方 而不影响的 页 面视觉效果 上传 文件时, 必须通过点击到该 Flash 从 而打开浏览对话框进 行 文件选择 文件选择成功后,Flash 会调 用 页 面中的 on_spark_selected_file 函数, 页 面可以选择合适的 方式处理该事件 第 二步, 验证 当 用户选择 文件后, 需将下 面的按照 THQS 算法处理后传递给 Flash 的 start_upload 函数后, 才能开始上传流程 首先要进 行和权限的验证, 通过后才开始 文件上传 userid title description tag categoryid 用户 id, 不可为空视频标题, 若为空, 则采 用去后缀 文件名作为 title 视频简介, 可以为空视频标签, 可以为空视频 子分类 id, 可选 验证完成后,Flash 会调 用 on_spark_upload_validated 函数传递验证结果以及视频 id 验证状态码的含义如下 : 验证状态码 OK NETWORK_ERROR 其它 成功 网络错误 Spark API 错误码 第 14 页共 16 页

第三步, 文件上传 文件开始上传后,Flash 会周期性调 用 on_spark_upload_progress 函数来报告上传进度, 间隔秒数由 progress_interval 指定 如果上传的进度为负数, 则发 生 网络错误, 上传中断 返回 100 则表 示上传成功 当返回 100 或者 -1 后,Flash 就不再调 用该函数了 第四步, 回调 当 Spark 平台处理完毕视频后 ( 上传 转码 审核都完成后 ), 会通过 HTTP 的 GET 方式通知你的 网站 该地址由 notify_url 指定 通知时会以 THQS 方式携带以下 : videoid status 视频 id,16 位 hex 字符串 视频状态 OK 表 示视频处理成功, FAIL 表 示视频处理失败 duration 片 长 ( 单位 : 秒 ) image 视频截图地址 视频处理失败有多种情况, 例如视频 文件异常 视频内容违规等等 <result>ok</result> 当 notify_url 指定的接 口返回上述 XML 时,Spark 平台会认为 网站已经成功接收到了回调信息, 不再进 行重试 返回其它任何内容,Spark 平台会进 行回调重试, 重试的间隔会随着重试次数的增 大 而增 大 若重试 7 次后, 依然没有成功, 则不再进 行通知 因此,Spark 平台最多通知 8 次 这 8 次的通知时间距第 一次的通知时间的差分别为 : [0,15s, 1m, 4m, 16m, 1h4m, 4h16m, 17h4m] 附录 1. HTTP 通信加密算法 当需要和 Spark 平台进 行 HTTP 通信时, 需要将原始的 Query String 转换为和请求时刻相关的 Hashed Query String 后再通过 GET 方法请求 Spark API 为了描述的 方便, 我们将 Query String 转换为 Hashed Query String 的算法称为 THQS 算法 在描述详细的算法流程之前, 我们先介绍 一下 Unix 时间戳的概念 Unix 时间戳, 即该时间到 1970 年 1 月 1 日 (UTC/GMT 的午夜 ) 之间的秒数 例如, 北京时间 2010 年 12 月 9 日 15 点 23 分 12 秒的 Unix 时间戳为 1291879392 THQS 算法 假设原来的 QueryString 为 q, 通过以下 4 个步骤, 即可得到最终 用于通信的 HashedQueryString: 1. 对于 q 中的每个键值对按照键的字 母顺序升序排序, 得到排序后的请求字符串 qs; 2. 加 入当前时间的 Unix 时间戳和 Spark 平台帐号对应的 API Key 值, 得到散列前的字符串 qf: qf qs&time=12345&salt=asdf1234 3. 计算得到 qf 的 md5 值, 假设为 abcdefg hash md5(qf) 4. 最终的 HashedQueryString 为 : hqs qs&time=12345&hash=abcdefg 用 hqs 代替 q 进 行 Http 通信 第 15 页共 16 页

下 面举 一个例 子计算过程 假设 用户从 Spark 获取到的 API Key 值是 asdf1234, 当前时间为 2010 年 12 月 9 日 15 点 23 分 12 秒, 原始的 QueryString 是 name=harry&level=top&salary=1000 第 一步, 将上述 QueryString 按照字 母顺序进 行升序排序, 结果是 level=top&name=harry&salary=1000 第 二步, 附加 time 值和 salt 值, 得到取 hash 前的字符串 level=top&name=harry&salary=1000&time=1291879392&salt=asdf1234 第三步, 对上述字符串取 md5 值 hash=bf04a55b30cff562f7add9f054ab7ffb 因此, 最终进 行 Http 通信的字符串为 level=top&name=harry&salary=1000&time=1291879392&hash=bf04a55b30cff562f7add9f054ab7ffb 附录 2. Flash 和 JavaScript 交互 Spark 平台的通信模式中, 有若干种 方式需要通过与 页 面中嵌 入的 Flash 交互完成 Flash 和 页 面有多种 方式可以交互, 为了保证 Spark 平台提供的 Flash 能够在各种环境下都能正常 工作, 推荐采 用以下 方式进 行处理 首先, 需要 用将 swf 文件嵌 入到 网 页中, 推荐采 用 swfobject 1.5 版本 将 swfobject.js 添加到 网 页中后, 用以下 js 语句将 swf 嵌 入到 网 页中, <script type="text/javascript"> var swfobj=new SWFObject('http://xxx/xx.swf', 'swfname', '80', '80', '8'); swfobj.addvariable('title','test'); swfobj.addvariable('number', 123); swfobj.addparam('allowfullscreen','true'); swfobj.addparam('allowscriptaccess','always'); swfobj.addparam('wmode','transparent'); swfobj.write('divid'); </script> 其次, 调 用 Flash 中的函数的时候, 如果 Flash 提供的函数名叫 func, 而需要传递的是 param 的话, 那么下 面这句就可以调 用该函数 swfname["func"](param); 其中,swfname 是嵌 入 Flash 的 id 值 第 16 页共 16 页