代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
视频网站56网的SDK
作者:
alemic
/ 发布于
2012/5/26
/
519
视频网站56网的SDK
<div><?php /** * @description PHP SDK for 56 网 v2.0 (include using OAuth2),support by 56 open platform team * @ * /</div> <div>/** * @description 设定时区. */ define('API_TIMEZONE_OFFSET',8); if(function_exists('date_default_timezone_set')) { @date_default_timezone_set('Etc/GMT'.(API_TIMEZONE_OFFSET > 0 ? '-' : '+').(abs(API_TIMEZONE_OFFSET))); } else { putenv('Etc/GMT'.(API_TIMEZONE_OFFSET > 0 ? '-' : '+').(abs(API_TIMEZONE_OFFSET))); } <div>/** * @description 常用配置. */ error_reporting(E_ALL); define('APPKEY','1000000010'); define('APPSECRET','0e4f13954bc537ec'); /** * @description 在oauth认证中请求的token */ define('ACCESS_TOKEN',''); define('CONNECT_TIMEOUT', 5); define('READ_TIMEOUT', 5);</div> <div>/** * @description 56网的接口类 * * @package open56Client */ class open56Client extends Exception{</div> <div>/** * 应用appkey */ public $appkey; /** * 应用secret */ public $secret; /** * 接口访问host */ public $domain = "<a href="http://oapi.56.com">http://oapi.56.com</a>"; /** * 用户授权access_token */ public $access_token; /** * 是否调试HTTP */ public $isDebugHttp = false;</div> <div> public function __construct($appkey,$secret){ if(empty($appkey) || empty($secret)){ try { throw new Exception("appkey or secret cannot be empty!"); } catch(Exception $e) { echo $e->getMessage(); } } $this->appkey = $appkey; $this->secret = $secret; } <div>/** * @description 设置access_token,提供需要oauth授权才能访问的接口设置用户access_token,该值参与客户端签名。 * * @access public * @param mixed $token * @return void */ public function _setToken($token){ if(!empty($token)){ $this->access_token = $token; } return $this; } <div>/** * @description 简易上传组件地址 * * return void */ public function uploadUrl(){ $url = $this->domain."/video/upload.plugin"; $params = array(); return $url.'?'.self::signRequest($params); } <div>/** * 复杂上传组件地址 * * @param $sid 第三方的应用的用户名 * @param $css 获取的样式加密码 * @param $rurl 失败时跳转的页面,获取返回信息 * @param $ourl 成功时跳转的页面,获取返回信息 */ public function customUrl($sid, $css, $rurl, $ourl){ $url = $this->domain."/video/custom.plugin"; $params = array('sid'=> $sid,'css'=> $css ,'rurl'=> $rurl,'ourl'=> $ourl); return $url.'?'.self::signRequest($params); } <div>/** * @description 获取视频信息 * * @param $flvid 56视频的flvid * @link /video/getVideoInfo.json * @return json */ public function getVideoInfoApp($flvid){ $url = $this->domain.'/video/getVideoInfo.json'; $params = array('vid'=>$flvid); return self::getHttp($url,$params); } <div>/** * @description 获取更新视频信息的接口 * * @param $flvid 56视频的flvid * @param $title 56视频的名称 * @param $desc 56视频的名称的描述 * @param $tag 56视频的标签 * @link /video/update.json * @return json */ public function updateApp($flvid,$title,$desc,$tag){ $url = $this->domain.'/video/update.json'; $params = array('vid'=>$flvid,'title'=>$title,'desc'=>$desc,'tag'=>$tag); return self::getHttp($url,$params); } <div>/* * @description 根据关键字获取搜索结果 * $data = array( * 'keyword'=> $keyword, //要查找的关键字 * 'c'=>1, * 't'=>'month', 时间,默认为month * 's'=>1, * 'page'=>1, 当前页数 * 'rows'=>$rows, 10 每页显示多少个 * ); * @param $keyword 主要的字段,关键字搜索,其他的默认即可 * @link /video/search.json * @return json */ public function searchVideo($data){ $url = $this->domain.'/video/search.json'; $params = array(); $params = array_merge($params,$data); return self::getHttp($url,$params); } <div>/** * @description 获取用户的个人信息 * * @param $userid 用户在56网站的user_id或视频的flvid * @param $token oauth2认证后的令牌 * @link /user/userProfile.json * @return json */ public function userInfo($userid){ $url= $this->domain.'/user/userProfile.json'; $params= array('userid'=>$userid,'access_token'=>$token); return self::getHttp($url,$params); } <div>/** * @description 获取用户的上传的视频 * * @param $userid 用户在56网站的user_id或视频的flvid * @param $token oauth2认证后的令牌 * @link /user/userVideos.json * @return json */ public function userVideos($userid){ $url = $this->domain.'/user/userVideos.json'; $params = array('userid'=>$userid,'access_token'=>$token,'s'=>'time','page'=>1,'rows'=>10); return self::getHttp($url,$params); } <div>/** * @description 获得用户的评论或视频的评论 * * @param $tid 用户在56网站的user_id或视频的flvid * @param $type user/flv * @param $token oauth2认证后的令牌 * @param $pct 1为普通视频 3是相册视频 * @return json */ public function userComments($tid = 'onesec', $type = 'user', $pct = 1){ $url = $this->domain.'/user/userComments.json'; $params = array('tid'=>$tid,'access_token'=>$token,'type'=> $type,'page'=>1,'rows'=>10, 'pct'=> $pct); return self::getHttp($url,$params); } <div>/** * @description 获得频道的视频 * * @access public * @param string $cid * @param string $page * @param string $num * @return json */ public function channelVideo($cid = '68', $page = '1', $num = '20'){ $url = $this->domain.'/video/channel.json'; $params = array('cid'=>$cid, 'page'=>$page, 'num'=>$num); return self::getHttp($url,$params); } <div>/** * @description 获得推荐频道的视频 * * @access public * @param string $mid * @param string $page * @param string $num * @return json */ public function recommendVideo($mid = '16', $page = '1', $num = '10'){ $url = $this->domain.'/video/recommend.json'; $params = array('mid'=>$mid, 'page'=>$page, 'num'=>$num); return self::getHttp($url,$params); } <div>/** * @description 获得56网首页热门的视频 * * @access public * @param string $cid * @param string $page * @param string $num * @return json */ public function hotVideo($cid = '2', $page = '1', $num = '10'){ $url = $this->domain.'/video/hot.json'; $params = array('cid'=>$cid, 'page'=>$page, 'num'=>$num); return self::getHttp($url,$params); } <div>/** * @description 获得56网昨天或某天的推荐的相册视频 * * @access public * @param mixed $day * @return json|void */ public function albumVideo($day){ $url = $this->domain.'/video/recAlbum.json'; $params = array('day'=>$day); return self::getHttp($url,$params); } <div>/** * @description GET 方法 * * @access private * @param mixed $url * @param array $params * @return json */ public function getHttp($url,$params=array()){ $url = $url.'?'.self::signRequest($params); return self::httpCall($url); } <div>/** * @description POST 方法 * * @access private * @param mixed $url * @param mixed $params * @return json */ public function postHttp($url,$params){ return self::httpCall($url,self::signRequest($params),'post'); } <div>/** * @description curl method,post方法params字符串的位置不同于get * * @access public * @param mixed $url * @param string $params * @param string $method * @param mixed $connectTimeout * @param mixed $readTimeout * @return json */ public function httpCall($url ,$params = '',$method = 'get', $connectTimeout = CONNECT_TIMEOUT, $readTimeout = READ_TIMEOUT) {</div> <div>$result = ""; if (function_exists('curl_init')) { $timeout = $connectTimeout + $readTimeout; /** Use CURL if installed... **/ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); if (strtolower($method)==='post'){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); } curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $connectTimeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, '56.com API PHP5 Client 1.1 (curl) ' . phpversion()); $result = curl_exec($ch); } else{ if (isset($params) and $params){ $url = $url."?".http_build_query($params); } /** Non-CURL based version... */ $ctx = stream_context_create( array( 'http' => array( 'timeout' => 5 /** 设置一个超时时间,单位为秒 */ ) ) ); $result = file_get_contents($url, 0, $ctx); } return $result; } <div>/** * @description 签名方法实现,并构造一个参数串 * * @access private * @param mixed $params * @return void */ public function signRequest($params){ if ($this->access_token){ $params['access_token'] = $this->access_token; } $keys = self::urlencodeRfc3986(array_keys($params)); $values = self::urlencodeRfc3986(array_values($params)); if($keys and $values){ $params = array_combine($keys,$values); }else{ throw new Exception("signRequest need params exits!"); } /** * 先去除系统级参数 */ unset($params['appkey']); unset($params['ts']); ksort($params); /** * 第一轮md5字符串 * */ $req = md5(http_build_query($params)); $ts = time();/**当次请求的时间戳**/ /**第二轮md5字符串,得到最后的签名变量,注意里面的顺序不可以改变否则结果错误!**/ $params['sign'] = md5($req.'#'.$this->appkey.'#'.$this->secret.'#'.$ts); $params['appkey'] = $this->appkey; $params['ts']=$ts;</div> <div>return http_build_query($params); } <div>/** * @description 转码异常字符 * * @access public * @param mixed $input * @return void */ public static function urlencodeRfc3986($input){ if (is_array($input)){ return array_map( array('open56Client', 'urlencodeRfc3986') , $input ); }else if( is_scalar($input)){ return str_replace( '+' , ' ' , str_replace( '%7E' , '~' , rawurlencode($input))); }else{ return ''; } } }
试试其它关键字
56网的SDK
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
alemic
贡献的其它代码
(
1
)
.
视频网站56网的SDK
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3