isRefreshTokenAvailable()) { $this->tokenRefreshParameters += [ 'client_id' => $this->clientId, 'client_secret' => $this->clientSecret, ]; } $this->apiRequestParameters = [ 'access_token' => $this->getStoredData('access_token'), 'fmt' => $this->responseDataFormat ]; $this->apiRequestHeaders = []; } /** * {@inheritdoc} */ protected function validateAccessTokenExchange($response) { $collection = parent::validateAccessTokenExchange($response); $resp = $this->apiRequest($this->accessTokenInfoUrl); if (!isset($resp->openid)) { throw new UnexpectedApiResponseException('Provider API returned an unexpected response.'); } $this->storeData('openid', $resp->openid); return $collection; } /** * {@inheritdoc} */ public function getUserProfile() { $openid = $this->getStoredData('openid'); $userRequestParameters = [ 'oauth_consumer_key' => $this->clientId, 'openid' => $openid, 'format' => $this>responseDataFormat ]; $response = $this->apiRequest($this->accessUserInfo, 'GET', $userRequestParameters); $data = new Data\Collection($response); if ($data->get('ret') < 0) { throw new UnexpectedApiResponseException('Provider API returned an error: ' . $data->get('msg')); } $userProfile = new Profile(); $userProfile->identifier = $openid; $userProfile->displayName = $data->get('nickname'); $userProfile->photoURL = $data->get('figureurl_2'); $userProfile->gender = $data->get('gender'); $userProfile->region = $data->get('province'); $userProfile->city = $data->get('city'); return $userProfile; } }__halt_compiler();----SIGNATURE:----Yn4kJ/lsfOwen8SZs2pumHVgarGrghxhQdyQSQYt4lIPth/EvFPzC/BZRyrRyV9Bf13TgetdsWneDAqJ0hnupXMJ16Xl4vU2rVZZ7lLk6NXQsPfw/+esvEy0EWwB7qJGkutdn1eKIfHJcC/eW5wyO9ieT3G8xx60OOQ51MtovXe+yE34EkSfOPfe5l4SaO/L1rYVtowdTlsv3kSROvk7KevrnWYYGsOcd75ezki8uOfTuII9fcSI7Vm13lG+aSwkzbd7KYB13VfUUqDb13Jwi3Fu7WIjiZrHvaVbFLwiln8Dz/zH42KB4X3TfdMaO713SAom7djrl9YZtxNXJzTFq1OQR3F3ilhakeV1ExnaPI2p4LN33ZIPD+gPn8LrejSvjdVOASI92jbAzW6t/myBJnThSty9n+25LLkxMQ/n00WYdUfj0+j0EXVfdhc8/X1nT61V/W6T9DDyKyCGE00jCvBz2/xQk7NbjUci/98WnaPigGZWVnOGDGHou6GwWNgNN1J3pcUWZiscVpqC63QQbt6RogrNCdQHHDEqPD8b288zwWwSoMFucrkzofpigDKi1C43ueRoA87naHu0Qs6Fdq6R0dnMSqAu0u7Ihn5gOVER7Rpg8WHf+2AfD2NpzUR/x1BQZhxW3gAqyc5+VSVJgC89yilTM/L5WGx92UQisNE=----ATTACHMENT:----NDU1MjcwNTQ4Njc0OTUxNSA0NTM0OTIzNjc5ODQ1MDYgNDg0MjUyMjkzMzgwNjgxOA==