if (isset($_GET['code'])) { $code = $_GET['code']; $token_url = "https://graph.facebook.com/oauth/access_token?" . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) . "&client_secret=" . $app_secret . "&code=" . $code; $response = @file_get_contents($token_url); $params = null; parse_str($response, $params); $acces_token = $params['access_token']; // If you already have a valid access token: $session = new \Facebook\FacebookSession($acces_token); // To validate the session: try { $user_profile = (new \Facebook\FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(\Facebook\GraphUser::className()); $email = $user_profile->getEmail(); if ($email) { $UserFacebookQuery = new UserFacebookQuery($crud); $UserFacebookQuery->filterByEmail($email); $UserFacebookQuery->find(); $UserFacebookEntity = $UserFacebookQuery->_getEntity(); // L'utilisateur existe if ($UserFacebookEntity) { $UserFacebookEntity->setAccessToken($acces_token); $UserFacebookEntity->setDateModification(time()); $UserFacebookEntity->save(); $_SESSION['oauth2']['facebook'] = $acces_token; // L'utilisateur n'existe pas } else { $UserFacebookEntity = new UserFacebookEntity(null, $crud); $UserFacebookEntity->setAccessToken($acces_token); $UserFacebookEntity->setIdUser($User['id']); $UserFacebookEntity->setIdFacebook($user_profile->getId()); $UserFacebookEntity->setName($user_profile->getName());