Call.php
3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
namespace WebPlugin\Partner\douban;
use WebPlugin\Partner\Factory;
define('DB_CLASS_PATH', dirname(__FILE__).'/class/');
require DB_CLASS_PATH . 'DoubanClient.class.php';
/**
* 豆瓣的调用接口
*
* @name Call
* @package lib/partner/douban
* @copyright yoho.inc
* @version 5.0 (2015-12-31 10:54:54)
* @author xiaowei <xiaowei.gong@yoho.cn>
*/
class Call extends Factory
{
/*人人网对象*/
protected $douban;
/**
* 初始化
*/
protected function init()
{
$this->douban = new \DoubanClient($this->apiConfig['appId'], $this->apiConfig['appKey'], $this->apiConfig['callback'], $this->apiConfig['scope']);
}
/**
* 获取授权URL
*
* @return string
*/
public function getAuthorizeUrl()
{
return $this->douban->getAuthorizeURL();
}
/**
* 获取授权的TOKEN
*
* @return array
*/
public function getAccessToken()
{
$token = array();
if (isset($_GET['code']))
{
try
{
// 设置authorizeCode
$this->douban->setAuthorizeCode($_GET['code']);
// 通过authorizeCode获取accessToken,至此完成用户授权
$this->douban->requestAccessToken();
$token = (array) $this->douban->getToken();
}
catch (Exception $e)
{
// do nothing
}
}
return $token;
}
/**
* 获取当前用户的基本资料
*
* @param array $token 授权成功的TOKEN, 默认为NULL
* @return array
*/
public function getUserInfo($token)
{
$userInfo = array();
if (is_array($token) && isset($token['access_token']))
{
// 获得保存的token
$this->douban->setAccessToken($token);
// 获得当前登录用户信息
$userInfo = $this->douban->api('/v2/user/~me', 'GET', null, true);
}
return $userInfo;
}
/**
* 获取当前用户的偶像(关注)列表
*
* 此接口暂未开放
*
* @return array
*/
public function getFriends($token, $params)
{
return array();
}
/**
* 同步分享
*
* @param String $image 新鲜事图片地址
* @param String $content 新鲜事主体内容 注意:最多200个字符。
* @param String $link 新鲜事标题和图片指向的链接
* @return Long 发布新鲜事的ID
*/
public function syncShare($token, $content, $image, $link)
{
$result = false;
if (is_array($token) && isset($token['access_token']))
{
// 获得保存的token
$this->douban->setAccessToken($token);
// 发表一篇说说
$param = array('source' => $this->apiConfig['appKey'], 'text' => $content, 'rec_image' => $image, 'rec_url' => $link,);
$result = $this->douban->api('/shuo/v2/statuses', 'POST', $param, true);
}
return $result;
}
}