$option) { if (\property_exists($this, $key)) { $this->{$key} = $option; } } parent::__construct([], $collaborators); } public function getBaseAuthorizationUrl() : string { return $this->urlAuthorize; } public function getBaseAccessTokenUrl(array $params = []) : string { return $this->urlAccessToken; } public function getResourceOwnerDetailsUrl(AccessToken $token) : string { return $this->urlResourceOwnerDetails; } public function getDefaultScopes() : array { return $this->scopes; } protected function getAccessTokenMethod() : string { return $this->accessTokenMethod ?: parent::getAccessTokenMethod(); } protected function getAccessTokenResourceOwnerId() : string { return $this->accessTokenResourceOwnerId ?: parent::getAccessTokenResourceOwnerId(); } protected function getScopeSeparator() : string { return $this->scopeSeparator ?: parent::getScopeSeparator(); } protected function createResourceOwner(array $response, AccessToken $token) : GeneralResourceOwner { return new GeneralResourceOwner($response, $this->responseResourceOwnerId); } }