<?php namespace WebPlugin\Partner\qqconnect; use WebPlugin\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; } }