'all' 'forcelogin' => 'true', ); /** * 获取accesstoekn时候的附加参数 * * @var array */ protected $getTokenParam = array(); /** * API根路径 * * @var string */ protected $apiBase = 'https://api.weibo.com/2/'; /** * 组装接口调用参数 并调用接口 * * @param string $api 微博API * @param array $param 调用API的额外参数 * @param string $method HTTP请求方法 默认为GET * @param bool $multi * @return string json */ public function call($api, $param = array(), $method = 'GET', $multi = false) { /* 腾讯QQ调用公共参数 */ $params = array( 'access_token' => $this->token, ); $params = array_merge($params, $param); $data = Http::get($this->apiBase . $api, $params); return Json::decode($data, true); } /** * 解析access_token方法请求后的返回值 * * @param $result * @return mixed * @throws \Exception */ protected function parseToken($result) { $data = Json::decode($result, true); if (isset($data['access_token'])) { $this->token = $data['access_token']; $this->openid = $data['uid']; return array( 'openid' => $this->openid, 'token' => $data['access_token'], 'expires' => $data['expires_in'], 'refresh' => '', ); } else return "获取 ACCESS_TOKEN 出错:{$result}"; } /** * 获取openid * * @return mixed * @throws \Exception */ public function getOpenId() { if ($this->openid) return $this->openid; return false; } /** * 获取用户信息 * * @return array */ public function getInfo() { $data = $this->call('users/show.json', array('uid' => $this->getOpenId())); return array( 'id' => $this->openid, 'name' => $data['screen_name'], 'gender' => ($data['gender'] == 'f') ? '女' : (($data['gender'] == 'm') ? '男' : '未知'), 'avatar' => $data['avatar_large'], ); } }