前不久,在学习新浪微博授权机制OAuth2.0时,也同时看了一下API的普通鉴权(Basic Authentication)方式。借鉴了网上一位仁兄写的普通鉴权的类http://code.google.com/p/sinatopenapi/ 后,写了一个微博图床的页面:
该图床通过新浪微博以前的普通鉴权方式,在服务器端进行登录认证,从而实现用户打开网页就能直接发微博。而我做的就是利用那个鉴权类,来发布一条带图片的微博。
由于新浪微博的特殊性(微博由于有转发等功能,在图片读取上不会设置访问权限)而我也试过将微博里的图片删除,但该图片链接还是保存着;再加上新浪这家大型网络公司支持,读取速度应该不成问题。由此可见该微博图床具有很好的实用性,推荐大家使用。
核心代码:
require('SinaOpenApi.php');
$openapi = new SinaOpenApi($source_key);
$openapi->setUser($user, $passwd);
$time=time();
$time=date("y-m-d H:i:s",$time);
if(!empty($_SERVER['REMOTE_ADDR'])){
$ip = $_SERVER['REMOTE_ADDR'];
$upload_params = array(
'status'=>'IP:'.$ip.' http://iiii.sinaapp.com/?ip='.$ip.' Time:'.$time.' Name:'.$_FILES["file"]["name"],
'pic'=>$_FILES["file"]["tmp_name"],
);
}else{
$ip = 'no';
$upload_params = array(
'status'=>'Time:'.$time.' Name:'.$_FILES["file"]["name"].'http://malu.me/',
'pic'=>$_FILES["file"]["tmp_name"],
);
}
$urls = array(
array('url'=>'statuses/upload','params'=>$upload_params, 'method'=>'POST'),
);