예제 #1
0
파일: index.php 프로젝트: neoartdoo/CMS
 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());