libern / zenapi
一个更好的OAuth2访问类,同时支持微博、QQ空间、腾讯微博、人人、百度、搜狐、开心、豆瓣、Google、Instagram、土豆、优酷、奇艺等社交网站
dev-master
2015-05-27 15:13 UTC
Requires
- php: >=5.4.0
This package is auto-updated.
Last update: 2024-12-09 03:56:48 UTC
README
通过一个统一风格的OAuth2访问库,统一各大社交网站接口。
安装方法
ZenAPI需要php5.3+,唯一的依赖是curl extension。
ZenAPI遵循PSR-4规范。只需在composer.json中添加依赖:
...
"require": {
...
"shen2/zenapi": "dev-master"
}
...
然后
$ composer install
OAuth2类和授权流程
OAuht2类是包含了生成授权地址,获取token的方法。
- 跳转到社交网站的授权页
$config = array( 'akey' => 'app key', 'skey' => 'secret key', 'scope' => 'email,friendships_groups_read', ); $oauth = new ZenAPI\WeiboOAuth2($config['akey'], $config['skey']); //初始化oauth $params = array( 'client_id' => $config['akey'], 'redirect_uri' => 'callback',//设置回调 'response_type' => 'code', 'state' => 'made by md5 avoid crsf', 'display' => null, 'scope' => $config['scope'], 'forcelogin' => 0, //是否使用已登陆微博账号 ); $authorizeUrl = $oauth->authorizeURL() . "?" . http_build_query($params); header('Location : ' . $authorizeUrl);
- 获取access_token
//微博返回的code $keys = array( 'code' => $_REQUEST['code'], 'redirect_uri'=> '{{redirec_uri}}', ); //获取token $token = $oauth->getAccessToken('code', $keys);
Client类和API访问方法
- 首先用之前获得的access_token实例化一个Client对象
- 然后就可以通过调用RESTful的方法,访问各种数据接口,如get()、post()、delete()
//根据上一步的acces_token实例化Client对象 $client = new ZenAPI\WeiboClient($token['access_token']); //根据uid获取用户信息 $info = $client->get('users/show', array('uid'=>1739476392)); //删除一条微博 $data = $client->post('comments/destory', array('uid'=>1739476392, 'cid' => 'weiboid'));
目前支持的社交网站
- 微博
- 腾讯微博
- 人人
- 百度
- 搜狐
- 豆瓣
- 开心
- 多说
- Github
- 优酷
- 土豆
- 爱奇艺