Call.class.php
2.97 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
<?php
require dirname (__FILE__) . '/class/DoubanClient.class.php';
/**
* 豆瓣的调用接口
*
* @name Lib_Partner_Douban_Call
* @package lib/partner/douban
* @copyright yoho.inc
* @version 5.0 (2014-02-12 16:52:26)
* @author fei.hong <fei.hong@yoho.cn>
*/
class Lib_Partner_Douban_Call extends Lib_Partner_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;
}
}