public function getMe($fields)
	{
		$accessTokenObject = $this->helper->getAccessToken($this->callBackUrl);
		if ($accessTokenObject == null) {
			throw new Exception('User not allowed permissions');
		}

		if ($fields == '' || !is_array($fields) || count($fields) == 0) {
			//array is empty
			$fields = [self::ID];//set ID field
		}

		try {
			if (isset($_SESSION['facebook_access_token'])) {
				$this->fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
			} else {
				$_SESSION['facebook_access_token'] = (string) $accessTokenObject;
			}

			$client = $this->fb->getOAuth2Client();
			$accessToken = $client->getLongLivedAccessToken($accessTokenObject->getValue());
			$response = $this->fb->get('/me?fields=' . implode(',', $fields), $accessToken);

			$this->setSocialLoginCookie(self::SOCIAL_NAME);

			return $response->getDecodedBody();

		} catch (Facebook\Exceptions\FacebookResponseException $e) {
			// When Graph returns an error
			throw new Exception($e->getMessage());
		} catch (Facebook\Exceptions\FacebookSDKException $e) {
			// When validation fails or other local issues
			throw new Exception($e->getMessage());
		}
	}