Call.php
4.26 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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<?php
namespace Plugin\Partner\qqconnect;
use Plugin\Partner\Factory;
define('QC_CLASS_PATH', dirname (__FILE__) . '/class/');
require QC_CLASS_PATH . 'QC.class.php';
/**
* 腾讯QQ互联的调用接口
*
* @name Call
* @package lib/partner/qqconnect
* @copyright yoho.inc
* @version 4.0 (2013-12-19 11:42:11)
* @author fei.hong <fei.hong@yoho.cn>
*/
class Call extends Factory
{
/*QQ互联对象*/
protected $qc;
/**
* 初始化
*/
protected function init()
{
$this->qc = new \QC();
}
/**
* 获取授权URL
*
* @return string
*/
public function getAuthorizeUrl()
{
return $this->qc->qq_login();
}
/**
* 获取授权的TOKEN
*
* @return array
*/
public function getAccessToken()
{
$token = array();
// try
// {
$token = $this->qc->qq_callback();
$token['openid'] = $this->qc->get_openid();
// }
// 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['openid']))
{
$this->qc = new \QC($token['access_token'], $token['openid']);
$userInfo = $this->qc->get_user_info();
if (isset($userInfo['ret']) && $userInfo['ret'] != 0)
{
$userInfo = array();
}
}
return $userInfo;
}
/**
* 获取当前用户的偶像(关注)列表
*
* @see http://wiki.connect.qq.com/get_idollist
* @param string $access_token 访问令牌
* @param string $openid 腾讯唯一的对应QQ号
* @param array $params 参数列表
* format 是 返回数据的格式(json或xml)
* reqnum 是 请求个数(1-30)
* startindex 是 起始位置(第一页:填0,继续向下翻页:填上次请求返回的nextstartpos)
* mode 是 获取模式,默认为0
* mode=0,新粉丝在前,只能拉取1000个
* mode=1,最多可拉取一万粉丝,暂不支持排序
* install 否 过滤安装应用好友(可选)
* 0-不考虑该参数,1-获取已安装应用好友,2-获取未安装应用好友
* sex 否 按性别过滤标识,1-男,2-女,0-不进行性别过滤,默认为0,支持排序
* @return array
*/
public function getFriends($token, $params)
{
$friends = array();
if (is_array($token) && isset($token['openid']))
{
$this->qc = new \QC($token['access_token'], $token['openid']);
$friends = $this->qc->get_idollist($params);
if (isset($friends['ret']) && $friends['ret'] != 0)
{
$friends = array();
}
}
return $friends;
}
/**
* 同步分享
*
* @param array $token 授权成功的TOKEN
* @param string $content 要更新的微博信息。信息内容不超过140个汉字, 为空返回400错误。
* @param string $image 要发布的图片路径, 支持url。[只支持png/jpg/gif三种格式, 增加格式请修改get_image_mime方法]
* @param string $link URL地址, 通过该地址链接回来
* @return boolean false:失败, true:成功
*/
public function syncShare($token, $content, $image, $link)
{
$result = false;
if (is_array($token) && isset($token['openid']))
{
$this->qc = new \QC($token['access_token'], $token['openid']);
$param = array('title' => '来自YOHO.CN的分享', 'url' => $link, 'summary' => $content,
'images' => $image, 'site' => 'yoho.cn', 'fromurl' => SITE_MAIN,);
$response = $this->qc->add_share($param);
if (isset($response['ret']) && $response['ret'] == 0)
{
$result = true;
}
}
return $result;
}
}