[], 'access_token' => [ 'Content-Type' => 'application/x-www-form-urlencoded' ], 'user_details' => [], ]; public function __construct(array $config, HttpClient $httpClient, Request $request) { parent::__construct($config, $httpClient, $request); $this->key = $config['key']; } protected function compileScopes() { return implode(' ', $this->scope); } protected function getAuthorizeUrl() { return $this->authorizeUrl; } protected function getAccessTokenBaseUrl() { return $this->accessTokenUrl; } protected function getUserDataUrl() { return $this->userDataUrl; } protected function buildUserDataUrl() { $url = $this->getUserDataUrl(); $url .= "?access_token=".$this->accessToken . "&site=stackoverflow" . "&key=".$this->key; return $url; } protected function parseTokenResponse($response) { return $this->parseJsonTokenResponse($response); } protected function parseUserDataResponse($response) { return json_decode($response, true); } protected function userId() { return array_get($this->providerUserData, 'items.0.account_id'); } protected function nickname() { return array_get($this->providerUserData, 'items.0.display_name'); } protected function fullName() { return array_get($this->providerUserData, 'items.0.display_name'); } protected function avatar() { return array_get($this->providerUserData, 'items.0.profile_image'); } protected function email() { return null; } }