public function facebook_verify_access_key($user) { $result = array('has_valid_access_token' => false); $fb = new \Facebook\Facebook(['app_id' => FB_APP_ID, 'app_secret' => FB_SECRET_KEY]); $CI =& get_instance(); $CI->load->model('user_account_model'); $facebook_accounts = $CI->user_account_model->get(array('user_id' => $user->id, 'type' => 'facebook')); $result['accounts'] = array(); if (sizeof($facebook_accounts) > 0) { foreach ($facebook_accounts as $account) { if ($account->access_token) { $oAuth2Client = $fb->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($account->access_token); $accessToken = new Facebook\Authentication\AccessToken($account->access_token, strtotime($tokenMetadata->getExpiresAt()->format('M d, Y'))); if ($accessToken->isExpired()) { $a['expired_access_token'] = true; } else { $a['expired_access_token'] = false; $a['valid_access_token'] = true; $a['expires_at'] = $tokenMetadata->getExpiresAt()->format('M d, Y'); $a['user'] = $this->facebook_get_user($account->access_token); $a['id'] = $account->id; $result['has_valid_access_token'] = true; } $result['accounts'][] = $a; } } } $helper = $fb->getRedirectLoginHelper(); // We only ask authentication for the Publish action, w/c allows us to post in the user's feed. $permissions = ['publish_actions']; $loginUrl = $helper->getLoginUrl(base_url() . "facebook/login_callback", $permissions); $result['login_url'] = $loginUrl; return $result; }
/** * @Method({"POST"}) * @Route("/facebook/login", name="facebook_login") */ public function facebookLoginAction(Request $request) { $code = $request->get('code'); $fb = new \Facebook\Facebook(['app_id' => '529276757135612', 'app_secret' => '0fe34b757c10440e7259665a53dda55a', 'default_graph_version' => 'v2.5']); try { $accessToken = $fb->getOAuth2Client()->getAccessTokenFromCode($code, 'http://api.viettut.com/'); $response = $fb->get('/me?fields=id,name,email', $accessToken->getValue()); $user = $response->getGraphUser(); $userManager = $this->container->get('viettut_user.domain_manager.lecturer'); $lecturer = $userManager->findUserByUsernameOrEmail($user['email']); if ($lecturer instanceof UserInterface) { $lecturer->setFacebookId($user['id'])->setName($user['name']); } else { $userDiscriminator = $this->get('rollerworks_multi_user.user_discriminator'); $userDiscriminator->setCurrentUser('viettut_user_system_lecturer'); $lecturer = $userManager->createNew(); $lecturer->setEnabled(true)->setFacebookId($user['id'])->setPlainPassword($user['email'])->setUsername($user['email'])->setEmail($user['email'])->setName($user['name'])->setActive(true)->setAvatar(sprintf('https://graph.facebook.com/%s/picture?type=square', $user['id'])); $userManager->save($lecturer); } $jwtManager = $this->get('lexik_jwt_authentication.jwt_manager'); $jwtTransformer = $this->get('viettut_api.service.jwt_response_transformer'); $tokenString = $jwtManager->create($lecturer); return JsonResponse::create($jwtTransformer->transform(['token' => $tokenString], $lecturer), 200); } catch (\Facebook\Exceptions\FacebookResponseException $e) { throw new UnauthorizedHttpException('Can not login with that account'); } catch (\Facebook\Exceptions\FacebookSDKException $e) { throw new UnauthorizedHttpException('Can not login with that account'); } }
public function getFacebookUserObject() { require_once APPPATH . "../assets/front/social/facebook/autoload.php"; $output_status = 'success'; $access_token_value = NULL; // Create our Application instance (replace this with your appId and secret). $fb = new Facebook\Facebook(['app_id' => FACEBOOK_APP_ID, 'app_secret' => FACEBOOK_SECRET_ID, 'default_graph_version' => 'v2.5']); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,email', $accessToken); $output_message = $user = $response->getGraphUser(); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); $access_token_value = (string) $oAuth2Client->getLongLivedAccessToken($accessToken)->getValue(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // echo 'Graph returned an error: ' . $e->getMessage(); $output_message = $e->getMessage(); $output_status = 'error'; } catch (Facebook\Exceptions\FacebookSDKException $e) { // echo 'Facebook SDK returned an error: ' . $e->getMessage(); $output_message = $e->getMessage(); $output_status = 'error'; } return array('status' => $output_status, 'data' => $output_message, 'accessToken' => $access_token_value); }
function login_callback() { $fb = new \Facebook\Facebook(['app_id' => FB_APP_ID, 'app_secret' => FB_SECRET_KEY]); $helper = $fb->getRedirectLoginHelper(); try { $access_token = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph return an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (!isset($access_token)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } $oAuth2Client = $fb->getOAuth2Client(); $tokenMetaData = $oAuth2Client->debugToken($access_token); $tokenMetaData->validateAppId(FB_APP_ID); $tokenMetaData->validateExpiration(); if (!$access_token->isLongLived()) { try { $access_token = $oAuth2Client->getLongLivedAccessToken($access_token); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $e->getMessage() . "</p>"; exit; } } $facebook_access_token = (string) $access_token; $this->load->model('api_model'); $facebook_user = $this->api_model->facebook_get_user($facebook_access_token); $user_account = array('user_id' => $this->user->id, 'account_id' => $facebook_user['id'], 'type' => 'facebook', 'access_token' => $facebook_access_token); $this->load->model('user_account_model'); if ($this->user_account_model->save($user_account)) { $_SESSION['facebook_access_token'] = $facebook_access_token; $this->session->set_userdata('facebook_access_token', $facebook_access_token); redirect(base_url() . "main/myaccount/facebook"); } }
public function data() { $config = new Controllers_Api_Facebook_Config_App(); $fb = new Facebook\Facebook(['app_id' => $config->config['app_id'], 'app_secret' => $config->config['app_secret'], 'default_graph_version' => $config->config['default_graph_version']]); $helper = $fb->getRedirectLoginHelper(); $result = array(); try { $accessToken = $helper->getAccessToken(); if (!isset($accessToken)) { if ($helper->getError()) { $result = array('status' => false, 'error' => $helper->getError(), 'code' => $helper->getErrorCode(), 'reason' => $helper->getErrorReason(), 'description' => $helper->getErrorDescription()); } else { $result = array('status' => false, 'error' => 'Bad request'); } } else { $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); $expired = $tokenMetadata->metadata['expires_at']; $issued = $tokenMetadata->metadata['issued_at']; $result['status'] = true; $result['data']['token'] = $tokenMetadata; //session 2 try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,email', $accessToken->getValue()); $user = json_decode($response->getGraphUser()); $result['data']['user'] = $user; } catch (Facebook\Exceptions\FacebookResponseException $e) { $result['data']['user'] = $e->getMessage(); } catch (Facebook\Exceptions\FacebookSDKException $e) { $result['data']['user'] = $e->getMessage(); } } } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error $result = array('status' => false, 'error' => $e->getMessage()); } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues $result = array('status' => false, 'error' => $e->getMessage()); } $result['social'] = 'facebook'; //$redirect_uri = $this->input->get('redirect_uri'); //if(isset($_GET['code'])){ // header("Location: ".$redirect_uri."?".http_build_query($result, '', '&')); // }else{ echo json_encode($result); // } }
public function login() { $client = new Facebook\Facebook(['app_id' => '558049591013252', 'app_secret' => '6678bbf4ef0bfad674601faee955a507', 'default_graph_version' => 'v2.5']); if (!isset($_GET['code'])) { $helper = $client->getRedirectLoginHelper(); $permissions = ['email', 'user_likes', 'manage_pages', 'publish_pages', 'read_insights']; // optional $loginUrl = $helper->getLoginUrl(base_url() . 'index.php/facebook/login', $permissions); $data['redirect_uri'] = $loginUrl; $this->load->view('youtube/oauth', $data); } else { $helper = $client->getRedirectLoginHelper(); try { $fb_access_token = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($fb_access_token)) { // Logged in! // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] // OAuth 2.0 client handler $oAuth2Client = $client->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($fb_access_token); $client->setDefaultAccessToken($longLivedAccessToken); $data['redirect_uri'] = base_url() . 'index.php/facebook/analytics'; $_SESSION['fb_access_token'] = (string) $longLivedAccessToken; $_SESSION['fb_client'] = $client; echo "token found"; } } $this->load->view('youtube/oauth', $data); }
public function call_back() { $config = new Controllers_Api_Facebook_Config_App(); $fb = new Facebook\Facebook(['app_id' => $config->config['app_id'], 'app_secret' => $config->config['app_secret'], 'default_graph_version' => $config->config['default_graph_version']]); $helper = $fb->getRedirectLoginHelper(); $result = array(); try { $accessToken = $helper->getAccessToken(); if (!isset($accessToken)) { if ($helper->getError()) { $result = array('status' => false, 'data' => array('error' => $helper->getError(), 'code' => $helper->getErrorCode(), 'reason' => $helper->getErrorReason(), 'description' => $helper->getErrorDescription())); } else { $result = array('status' => false, 'data' => array('error' => 'Bad request')); } } else { $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); $result = array('status' => true, 'data' => array('token' => $accessToken->getValue(), 'meta' => json_decode($tokenMetadata))); //session 2 try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name', $accessToken->getValue()); $user = $response->getGraphUser(); $result = array_merge($result, array('detail' => $user['id'])); } catch (Facebook\Exceptions\FacebookResponseException $e) { $result = array_merge($result, array('detail' => $e->getMessage())); } catch (Facebook\Exceptions\FacebookSDKException $e) { $result = array_merge($result, array('detail' => $e->getMessage())); } } } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error $result = array('status' => false, 'data' => array('error' => $e->getMessage())); } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues $result = array('status' => false, 'data' => array('error' => $e->getMessage())); } echo json_encode($result); }
public function init_config() { $accessToken = $_SESSION['fb_access_token']; $config = array('app_id' => '1669303983347467', 'app_secret' => 'f619732cca08aabeaf23ff8d12bf32b3', 'default_graph_version' => 'v2.5'); $fb = new Facebook\Facebook($config); // OAuth 2.0 client handler $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); return array("config" => $config, "accessToken" => $longLivedAccessToken); }
/** * Tính năng đăng nhập qua facebook * Gọi sang API xác nhận truy cập facebook * Nếu đã có tài khoản này rồi thì login * Nếu chưa có thì tạo tài khoản cho KH. Để mật khẩu bằng trống * Đến lúc kiểm */ public function login_facebook() { if (!session_id()) { session_start(); } $this->autoLayout = false; $this->autoRender = false; $fb = new Facebook\Facebook(['app_id' => FB_APP_ID, 'app_secret' => FB_APP_SECRET, 'default_graph_version' => 'v2.2']); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error /* echo 'Graph returned an error: ' . $e->getMessage(); exit;*/ //get login url, if login error: retry login via login url $permissions = ['email', 'public_profile']; // Optional permissions $loginUrl = $helper->getLoginUrl(DOMAIN . Router::url(array('controller' => 'User', 'action' => 'login_facebook')), $permissions); $login_href = htmlspecialchars($loginUrl); $this->redirect($login_href); } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues /*echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit;*/ //get login url, if login error: retry login via login url $permissions = ['email', 'public_profile']; // Optional permissions $loginUrl = $helper->getLoginUrl(DOMAIN . Router::url(array('controller' => 'User', 'action' => 'login_facebook')), $permissions); $login_href = htmlspecialchars($loginUrl); $this->redirect($login_href); } if (!isset($accessToken)) { $permissions = ['email', 'public_profile']; // Optional permissions $loginUrl = $helper->getLoginUrl(DOMAIN . Router::url(array('controller' => 'User', 'action' => 'login_facebook')), $permissions); $login_href = htmlspecialchars($loginUrl); $this->redirect($login_href); /*if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit;*/ } // Logged in //echo '<h3>Access Token</h3>'; //var_dump($accessToken->getValue()); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); //echo '<h3>Metadata</h3>'; //var_dump($tokenMetadata); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId(FB_APP_ID); // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); $response = $fb->get('/me?fields=id,name,email, gender', $accessToken->getValue()); $user_fb = $response->getGraphUser(); /** * check xem user da ton tai chua * Neu chua ton tai thi tao tai khoan cho user * con neu ton tai roi thi login vao cho user va redirect sang trang chu */ $check_user = $this->User->findByUsername($user_fb['id']); if (!empty($check_user)) { $this->Session->write('user', $check_user); } else { $user_insert = array('id' => false, 'username' => $user_fb['id'], 'password' => '123456', 'gender' => 0, 'active_key' => "", 'phone' => '123456', 'captcha' => '123456', 'email' => $user_fb['email'], 'fullname' => $user_fb['name'], 'avatar' => 'https://graph.facebook.com/' . $user_fb['id'] . '/picture?type=large', 'status' => 1); $this->User->save($user_insert); $user_insert_id = $this->User->getInsertID(); $user_login = $this->User->findById($user_insert_id); $this->Session->write('user', $user_login); } $_SESSION['fb_access_token'] = (string) $accessToken; $this->redirect(DOMAIN); }
public function doFacebookLogin() { //$fb=Facebook::getFb(); $fb = new Facebook\Facebook(['app_id' => '1659779297592952', 'app_secret' => '12f070df1d8ba88fded6413b8b7d0b3d', 'default_graph_version' => 'v2.2']); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (!isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId("1659779297592952"); // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); if (!$accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"; exit; } } if ($accessToken != null) { $user_token = $accessToken->getValue(); $_SESSION['fb_access_token'] = (string) $accessToken; if ($this->_shareWithFacebook($fb, $user_token)) { $this->_callUpdateOffers(); try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,email', $accessToken); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $user = $response->getGraphUser(); if ($this->Mdl_social_accounts->getId() != '') { $this->Mdl_social_accounts->setData('update_facebook', $user, 'facebook'); if ($this->Mdl_social_accounts->update()) { setInformUser('success', 'Link Post succdessfully and your facebook details is saved successfully'); redirect('social_accounts'); } else { setInformUser('error', 'Some error occurred'); redirect('social_accounts'); } } else { $this->Mdl_social_accounts->setData('update_facebook', $user, 'facebook'); if ($this->Mdl_social_accounts->insert()) { setInformUser('success', 'Link Post succdessfully and your facebook details is saved successfully'); redirect('social_accounts'); } else { setInformUser('error', 'Some error occurred'); redirect('social_accounts'); } } } } }
public function fbCallbackAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $config = Zend_Registry::get('config'); $fb = new Facebook\Facebook(['app_id' => $config->facebook->app_id, 'app_secret' => $config->facebook->app_secret, 'default_graph_version' => $config->facebook->default_graph_version]); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (!isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // Logged in //echo '<h3>Access Token</h3>'; //var_dump($accessToken->getValue()); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); //echo '<h3>Metadata</h3>'; //var_dump($tokenMetadata); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId($config->facebook->app_id); // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); if (!$accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"; exit; } echo '<h3>Long-lived</h3>'; var_dump($accessToken->getValue()); } $_SESSION['fb_access_token'] = (string) $accessToken; try { // Returns a `Facebook\FacebookResponse` object //id,name,first_name,middle_name,last_name,name_format,birthday,age_range,email,gender,installed $response = $fb->get('/me?fields=id,name,email', $_SESSION['fb_access_token']); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $user = $response->getGraphUser(); _print($user); exit; // User is logged in with a long-lived access token. // You can redirect them to a members-only page. //header('Location: https://example.com/members.php'); }
require_once '../../core/global.php'; require_once PATH_SITE_ROOT . 'core/facebook-php-sdk-v4-5.0-dev/src/Facebook/autoload.php'; /*$SilentMode = false; if ((isset($_SESSION['fb_login_silent'])) && ($_SESSION['fb_login_silent'] == '1')) { $SilentMode = true; }*/ $facebook = new Facebook\Facebook(['app_id' => facebook_app_id, 'app_secret' => facebook_app_secret, 'default_graph_version' => facebook_graph_version]); $helper = $facebook->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); if (!isset($accessToken)) { /*if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit;*/ return AddAlertMessage('danger', 'Ошибка при регистрации! (1)', '/'); } // Logged in //echo '<h3>Access Token</h3>'; //var_dump($accessToken->getValue()); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $facebook->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken);
public static function LoginFacebook() { $fb = new Facebook\Facebook(['app_id' => '1068588159868715', 'app_secret' => 'd3790d1f47df4805b47976f16199fd89', 'default_gra]ph_version' => 'v2.6']); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email']; // optional if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $accessToken = $helper->getAccessToken(); } if (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived access token $_SESSION['facebook_access_token'] = (string) $accessToken; // OAuth 2.0 client handler $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']); $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } $profile_request = $fb->get('/me?fields=name,first_name,last_name,email'); $profile = $profile_request->getGraphNode()->asArray(); return $profile; }
function after_login_handler() { $config_model = $this->add('xepan/marketing/SocialPosters_Facebook_FacebookConfig'); $config_model->tryLoad($_GET['for_config_id']); if (!$config_model->loaded()) { $this->add('View_Error')->set('Could not load Config Model'); return false; } $config = array('app_id' => $config_model['appId'], 'app_secret' => $config_model['secret'], 'fileUpload' => true, 'allowSignedRequest' => false); $this->fb = $facebook = $fb = new \Facebook\Facebook($config); if (!$this->fb) { return "Configuration Problem"; } $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($accessToken)) { // Logged in! $_SESSION['facebook_access_token'] = (string) $accessToken; $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); $fb->setDefaultAccessToken($longLivedAccessToken); try { $response = $fb->get('/me'); $userNode = $response->getGraphUser(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $fb_user = $this->add('xepan/marketing/SocialPosters_Facebook_FacebookUsers'); $fb_user->addCondition('userid_returned', $userNode->getId()); $fb_user->addCondition('config_id', $config_model->id); $fb_user->tryLoadAny(); $fb_user['name'] = $userNode['name']; $fb_user['access_token'] = (string) $longLivedAccessToken; $fb_user['is_access_token_valid'] = true; $fb_user->save(); return true; } return false; }
public function callbackAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $config = array('app_id' => '1553973548253647', 'app_secret' => 'b0ea352b328e6a61b2ec1f07672db859', 'default_graph_version' => 'v2.5', 'persistent_data_handler' => 'session'); $fb = new Facebook\Facebook($config); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (!isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // Logged in echo '<h3>Access Token</h3>'; var_dump($accessToken->getValue()); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); echo '<h3>Metadata</h3>'; var_dump($tokenMetadata); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId($config['app_id']); // Replace {app-id} with your app id // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); if (!$accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"; exit; } echo '<h3>Long-lived</h3>'; var_dump($accessToken->getValue()); } $this->user->accessToken = (string) $accessToken; $_SESSION['facebook_access_token'] = (string) $accessToken; //Store AccessToken in My_Auth::Storage (Session); $storage = My_Auth::getInstance('Painel')->getStorage(); $storage->write($this->user); // //PageTab // $helper = $fb->getPageTabHelper(); // // try { // $accessToken = $helper->getAccessToken(); // } catch (Facebook\Exceptions\FacebookResponseException $e) { // // When Graph returns an error // echo 'Graph returned an error: ' . $e->getMessage(); // exit; // } catch (Facebook\Exceptions\FacebookSDKException $e) { // // When validation fails or other local issues // echo 'Facebook SDK returned an error: ' . $e->getMessage(); // exit; // } // // if (!isset($accessToken)) { // echo 'No OAuth data could be obtained from the signed request. User has not authorized your app yet.'; // exit; // } // // // Logged in // echo '<h3>Page ID</h3>'; // var_dump($helper->getPageId()); // // echo '<h3>User is admin of page</h3>'; // var_dump($helper->isAdmin()); // // echo '<h3>Signed Request</h3>'; // var_dump($helper->getSignedRequest()); // // echo '<h3>Access Token</h3>'; // var_dump($accessToken->getValue()); echo '<a href="' . $this->_request->getBaseUrl() . '/painel/facebook">Go Back</a>'; }
public function logincallback() { $fb = new Facebook\Facebook(['app_id' => '1509104876060790', 'app_secret' => '977e891176e8e1e9e6b626323f01d8bb', 'default_graph_version' => 'v2.5']); //$fbApp = new Facebook\FacebookApp('1509104876060790','977e891176e8e1e9e6b626323f01d8bb'); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error1 : ' . $e->getMessage(); exit; } if (isset($accessToken)) { // Logged in! $_SESSION['facebook_access_token'] = (string) $accessToken; // Sets the default fallback access token so we don't have to pass it to each request $fb->setDefaultAccessToken($accessToken); // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] try { //Get pages $request = $fb->request('GET', '/me/accounts'); $response = $fb->getClient()->sendRequest($request); $graphEdge = $response->getGraphEdge(); // Iterate over all the GraphNode's returned from the edge $json = ""; foreach ($graphEdge as $key => $value) { $json .= $value['id'] . ":" . $value['name'] . ","; } //Get name and email $request = $fb->request('GET', '/me?fields=name,email'); $response = $fb->getClient()->sendRequest($request); $graphNode = $response->getGraphNode(); $name = $graphNode['name']; $id = $graphNode['id']; $email = isset($graphNode['email']) ? $graphNode['email'] : ''; //Get long token // OAuth 2.0 client handler $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); $loginData = array(); $loginData['pages'] = $json; $loginData['name'] = $name; $loginData['email'] = $email; $loginData['id'] = $id; $loginData['facebook_token'] = $longLivedAccessToken; $loginData['login_provider'] = 'facebook'; $this->save_and_login($loginData); //$this->index($loginData); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error1 : ' . $e->getMessage(); exit; } //echo 'Logged in as ' . $userNode->getName(); } }
public function facebook_login_callback() { global $rm_env_requirements; if (!($rm_env_requirements & RM_REQ_EXT_CURL)) { return; } global $rm_fb_sdk_req; $gopts = new RM_Options(); $fb_app_id = $gopts->get_value_of('facebook_app_id'); $fb_app_secret = $gopts->get_value_of('facebook_app_secret'); if (!$fb_app_id || !$fb_app_secret) { return; } if ($rm_fb_sdk_req === RM_FB_SDK_REQ_OK) { $fb = new Facebook\Facebook(array('app_id' => $fb_app_id, 'app_secret' => $fb_app_secret, 'default_graph_version' => 'v2.2')); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (!isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // Logged in // echo '<h3>Access Token</h3>'; //var_dump($accessToken->getValue()); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); //echo '<h3>Metadata</h3>'; //var_dump($tokenMetadata); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId($fb_app_id); // Replace {app-id} with your app id // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); if (!$accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken2 = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"; exit; } //echo '<h3>Long-lived</h3>'; //var_dump($accessToken2->getValue()); } //$_SESSION['fb_access_token'] = (string) $accessToken; try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,email,first_name,last_name', (string) $accessToken); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $user = $response->getGraphUser(); //var_dump($user->getFirstName()); $user_name = $user->getName(); $user_email = $user->getEmail(); $user_name = $user->getName(); $user_fname = $user->getFirstName(); $user_lname = $user->getLastName(); $redirection_post = $gopts->get_value_of('post_submission_redirection_url'); if (email_exists($user_email)) { // user is a member $user = get_user_by('email', $user_email); $user_id = $user->ID; wp_set_auth_cookie($user_id, true); } else { // this user is a guest $random_password = wp_generate_password(10, false); $user_id = wp_create_user($user_email, $random_password, $user_email); if (!is_wp_error($user_id)) { if (function_exists('is_multisite') && is_multisite()) { add_user_to_blog(get_current_blog_id(), $user_id, 'subscriber'); } update_user_meta($user_id, 'avatar_image', 'https://graph.facebook.com/' . $user->getId() . '/picture?type=large'); wp_update_user(array('ID' => $user_id, 'display_name' => $user_name, 'first_name' => $user_fname, 'last_name' => $user_lname)); wp_set_auth_cookie($user_id, true); } } } else { $fb = new Facebook(array('appId' => $fb_app_id, 'secret' => $fb_app_secret)); $user = $fb->getUser(); if ($user) { $user_profile = $fb->api('/me?fields=id,name,email,first_name,last_name'); if (isset($user_profile['email'])) { $user_email = $user_profile['email']; $redirection_post = $gopts->get_value_of('post_submission_redirection_url'); if (email_exists($user_email)) { // user is a member $user = get_user_by('email', $user_email); $user_id = $user->ID; wp_set_auth_cookie($user_id, true); } else { // this user is a guest $random_password = wp_generate_password(10, false); $user_id = wp_create_user($user_email, $random_password, $user_email); if (!is_wp_error($user_id)) { if (function_exists('is_multisite') && is_multisite()) { add_user_to_blog(get_current_blog_id(), $user_id, 'subscriber'); } update_user_meta($user_id, 'avatar_image', 'https://graph.facebook.com/' . $user_profile['id'] . '/picture?type=large'); wp_update_user(array('ID' => $user_id, 'display_name' => $user_profile['name'], 'first_name' => $user_profile['first_name'], 'last_name' => $user_profile['last_name'])); wp_set_auth_cookie($user_id, true); } } } else { die('Error: Unable to fetch email address from Facebbok.'); } } } if ($redirection_post > 0) { $after_login_url = get_permalink($redirection_post); } else { $after_login_url = home_url(); } RM_Utilities::redirect($after_login_url); }
function rgt_fb_email_button_shortcode() { $options = get_option('rgt_fb_email_button_settings'); $app_id = $options['rgt_fb_email_button_app_id']; $app_secret = $options['rgt_fb_email_button_app_secret']; $current_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; wp_register_style('rgt_fb_email_button_css', plugins_url('fb_email_button_style.css', __FILE__)); wp_enqueue_style('rgt_fb_email_button_css'); if (!($app_id and $app_secret)) { $error = rgt_fb_email_button_error_wrapper('Facebook App ID and App Secret must be set in the Settings before using this plugin.'); return $error; } else { require_once __DIR__ . '/Facebook_SDK/autoload.php'; $fb = new Facebook\Facebook(['app_id' => $app_id, 'app_secret' => $app_secret, 'default_graph_version' => 'v2.5', 'default_access_token' => $app_id . '|' . $app_secret]); $helper = $fb->getRedirectLoginHelper(); if (isset($_GET['code'])) { // API Callback try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { $error = rgt_fb_email_button_error_wrapper('Invalid Facebook App Info.'); return $error; } catch (Facebook\Exceptions\FacebookSDKException $e) { $error = rgt_fb_email_button_error_wrapper('Invalid Facebook App Info.'); return $error; } if (isset($accessToken)) { $oAuth2Client = $fb->getOAuth2Client(); $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); $_SESSION['rgt_fb_email_button_facebook_access_token'] = (string) $longLivedAccessToken; // Get data $fb->setDefaultAccessToken($longLivedAccessToken); try { $response = $fb->get('/me?fields=id,name,email'); } catch (Facebook\Exceptions\FacebookResponseException $e) { $error = rgt_fb_email_button_error_wrapper('Graph returned an error: ' . $e->getMessage()); return $error; } catch (Facebook\Exceptions\FacebookSDKException $e) { $error = rgt_fb_email_button_error_wrapper('Facebook SDK returned an error: ' . $e->getMessage()); return $error; } $graphObject = $response->getGraphObject(); $fb_id = $graphObject->getProperty('id'); $name = $graphObject->getProperty('name'); $email = $graphObject->getProperty('email'); if (!isset($_GET['unsubscribe'])) { rgt_fb_email_button_add_subscriber($fb_id, $name, $email); } elseif (wp_verify_nonce($_GET['unsubscribe'], 'fb_email_unsubscribe')) { rgt_fb_email_button_remove_subscriber($fb_id); unset($_SESSION['rgt_fb_email_button_facebook_access_token']); } $js_redirect = "<script>window.location = '" . remove_query_arg(array('code', 'unsubscribe', 'state')) . "'</script>"; return $js_redirect; } } $permissions = array('public_profile', 'email'); if (!isset($_SESSION['rgt_fb_email_button_facebook_access_token']) or !$_SESSION['rgt_fb_email_button_facebook_access_token']) { $login_url = $helper->getLoginUrl($current_url, $permissions); $button = "<a class=\"btn_fb_subscribe\" onclick=\"location.href='{$login_url}'\"></a>"; } else { $nonce_unsubscribe = wp_nonce_url($current_url, 'fb_email_unsubscribe', 'unsubscribe'); $unsubscribe_url = $helper->getLoginUrl($nonce_unsubscribe, $permissions); $button = "<a class=\"btn_fb_subscribed\" onclick=\"location.href='{$unsubscribe_url}'\"></a>"; } return $button; } }
$helper = $fb->getRedirectLoginHelper(); $permissions = ['email']; // optional if (isset($_SESSION['facebook_access_token'])) { $accessToken = $_SESSION['facebook_access_token']; } else { $accessToken = $helper->getAccessToken(); } if (isset($accessToken)) { if (isset($_SESSION['facebook_access_token'])) { $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } else { // getting short-lived access token $_SESSION['facebook_access_token'] = (string) $accessToken; // OAuth 2.0 client handler $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']); $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken; // setting default access token to be used in script $fb->setDefaultAccessToken($_SESSION['facebook_access_token']); } $profile_request = $fb->get('/me?fields=name,first_name,last_name,email'); $profile = $profile_request->getGraphNode()->asArray(); $linkData = ['message' => 'User provided message']; $response = $fb->post("/me/feed", $linkData, $accessToken); $graphNode = $response->getGraphNode(); echo 'Posted with id: ' . $graphNode['id']; } else { $loginUrl = $helper->getLoginUrl('http://localhost/Ecommerce/trunk/public_html/fblogin-v5/post_user.php', $permissions); echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>';
public function facebook_oauth() { $this->load->library("FacebookAuth"); $fb = new Facebook\Facebook(['app_id' => '400987613433600', 'app_secret' => '2e4c483ea56dd2b9be87242321ec32cb', 'default_graph_version' => 'v2.2']); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (!isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId("400987613433600"); // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); if (!$accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"; exit; } } $this->session->set_userdata('fb_access_token', (string) $accessToken); try { // Returns a `Facebook\FacebookResponse` object $fb->setDefaultAccessToken($this->session->userdata('fb_access_token')); $response = $fb->get('/me?fields=name,email,bio,birthday,gender,picture'); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $user = $response->getGraphUser(); $this->load->model("UserModel", "user_model"); $this->user_model->register_via_facebook($user); redirect("dashboard"); }