/** * {@inheritdoc} */ function loginFinish() { $helper = $this->api->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { throw new Hybrid_Exception('Facebook Graph returned an error: ' . $e->getMessage()); } catch (Facebook\Exceptions\FacebookSDKException $e) { throw new Hybrid_Exception('Facebook SDK returned an error: ' . $e->getMessage()); } if (!isset($accessToken)) { if ($helper->getError()) { throw new Hybrid_Exception(sprintf("Could not authorize user, reason: %s (%d)", $helper->getErrorDescription(), $helper->getErrorCode())); } else { throw new Hybrid_Exception("Could not authorize user. Bad request"); } } try { // Validate token $oAuth2Client = $this->api->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($accessToken); $tokenMetadata->validateAppId($this->config["keys"]["id"]); $tokenMetadata->validateExpiration(); // Exchanges a short-lived access token for a long-lived one if (!$accessToken->isLongLived()) { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } } catch (FacebookSDKException $e) { throw new Hybrid_Exception($e->getMessage(), 0, $e); } $this->setUserConnected(); $this->token("access_token", $accessToken->getValue()); }
/** * Return info about facebook user * @param $fields * @return array * @throws Exception */ public function getMe($fields) { $client = $this->fb->getOAuth2Client(); $accessTokenObject = $this->helper->getAccessToken(); if ($accessTokenObject == null) { throw new Exception("User not allowed permissions"); } if ($fields == "" || !is_array($fields) || count($fields) == 0) { //array is empty $fields = array(ID); //set ID field } try { $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()); } }
/** * @param string $token * * @return UserProfileInterface|null */ protected function getTokenInfo($token) { try { // Get the Facebook\GraphNodes\GraphUser object for the current user. $response = $this->facebook->get('/me?fields=id,name,email,first_name,last_name', $token); $user = $response->getGraphUser(); // check if we can get user identifier if (empty($user->getId())) { return null; } // do not accept tokens generated not for our application even if they are valid, // to protect against "man in the middle" attack $tokenMetadata = $this->facebook->getOAuth2Client()->debugToken($token); // this is not required, but lets be sure because facebook API changes very often $tokenMetadata->validateAppId($this->facebook->getApp()->getId()); $userProfile = new UserProfile(); $userProfile->setIdentifier($user->getId()); $userProfile->setDisplayName($user->getName()); $userProfile->setFirstName($user->getFirstName()); $userProfile->setLastName($user->getLastName()); $userProfile->setEmail($user->getEmail()); // facebook doesn't allow login with not verified email if (!empty($user->getEmail())) { $userProfile->setEmailVerified(true); } return $userProfile; } catch (FacebookSDKException $e) { return null; } }
/** * @param string $userAccessToken * @return \Facebook\Authentication\AccessToken|null * @throws LiveBroadcastOutputException */ public function getLongLivedAccessToken($userAccessToken) { if (!$this->facebookSDK) { $this->initFacebook(); } if (!$userAccessToken) { return null; } try { return $this->facebookSDK->getOAuth2Client()->getLongLivedAccessToken($userAccessToken); } catch (FacebookSDKException $ex) { throw new LiveBroadcastOutputException('Facebook SDK exception: ' . $ex->getMessage()); } }
/** * Get email address or name based on access token. * * @param AccessToken $accessToken * * @return mixed */ protected function _getUsername($accessToken) { $oAuth2Client = $this->_facebook->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($accessToken); $user = $this->_facebook->get('/' . $tokenMetadata->getUserId() . '?fields=name,email', $accessToken)->getGraphUser(); return $user->getField('email') !== null ? $user->getField('email') : $user->getField('name'); }
/** * @Route("/", name="homepage") */ public function indexAction(Request $request) { $this->get('session')->start(); $config = ['app_id' => '1690300947880602', 'app_secret' => '0b6107ea187ee9cd79adc66a2dd84254', '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']); // 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()); } return new Response(); }
/** * Return info about login user * @return array * @throws Exception */ public function getMe() { $client = $this->fb->getOAuth2Client(); $accessTokenObject = $this->helper->getAccessToken(); if ($accessTokenObject == null) { throw new Exception("User not allowed permissions"); } try { $accessToken = $client->getLongLivedAccessToken($accessTokenObject->getValue()); $response = $this->fb->get('/me?fields=id,name,email', $accessToken); 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()); } }
/** * This implementation follow instruction * * @see https://developers.facebook.com/docs/php/gettingstarted/5.0.0 * * @return AccessToken */ public function getTokenFromRedirect() { $token = null; try { $token = $this->getLoginHelper()->getAccessToken($this->getRedirectUrl()); // exchange a long-live access token $oAuth2Client = $this->facebook->getOAuth2Client(); $token = $oAuth2Client->getLongLivedAccessToken($token); } catch (FacebookResponseException $e) { throw new \RuntimeException('Graph returned an error: ' . $e->getMessage()); } catch (FacebookSDKException $e) { // When validation fails or other local issues throw new \RuntimeException('Facebook SDK returned an error: ' . $e->getMessage()); } if (!$token instanceof AccessToken) { throw new \RuntimeException('Could not authorize request on Facebook'); } // store access token $_SESSION[self::FACEBOOK_SESSION_KEY] = $token->__toString(); $this->facebook->setDefaultAccessToken($token); return $token; }
/** * Get user access token. * * @param bool $longLived Exchange short-lived access token for a long-lived one * @return AccessToken * @throws SystemException */ public function getUserAccessToken($longLived = false) { $accessToken = null; $helper = $this->fb->getJavaScriptHelper(); try { $accessToken = $helper->getAccessToken(); } catch (FacebookResponseException $e) { Log::error('Facebook Graph API call failed when getting an access token.', ['error' => $e->getMessage(), 'code' => $e->getCode(), 'subcode' => $e->getSubErrorCode(), 'status' => $e->getHttpStatusCode(), 'type' => $e->getErrorType()]); throw new SystemException('Facebook Graph API error: ' . $e->getMessage()); } catch (FacebookSDKException $e) { Log::error('Facebook SDK error when getting an access token.', ['error' => $e->getMessage(), 'code' => $e->getCode()]); throw new SystemException('Facebook SDK error: ' . $e->getMessage()); } if ($longLived && $accessToken && !$accessToken->isLongLived()) { try { $oAuth2Client = $this->fb->getOAuth2Client(); $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (FacebookSDKException $e) { Log::error('Facebook SDK error when getting a long-lived access token.', ['error' => $e->getMessage(), 'code' => $e->getCode()]); } } return $accessToken; }
public function getClient() { return $this->application->getOAuth2Client(); }
public function init() { parent::init(); $fb_client = new Facebook(['app_id' => $this->appId, 'app_secret' => $this->secret, 'default_graph_version' => 'v2.2']); $fb_helper = $fb_client->getRedirectLoginHelper(); try { $accessToken = $fb_helper->getAccessToken(); } catch (FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (!isset($accessToken)) { if ($fb_helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $fb_helper->getError() . "\n"; echo "Error Code: " . $fb_helper->getErrorCode() . "\n"; echo "Error Reason: " . $fb_helper->getErrorReason() . "\n"; echo "Error Description: " . $fb_helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } echo '<h3>Access Token</h3>'; var_dump($accessToken->getValue()); $oAuth2Client = $fb_client->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($accessToken); echo '<h3>Metadata</h3>'; var_dump($tokenMetadata); $tokenMetadata->validateAppId($this->appId); $tokenMetadata->validateExpiration(); if (!$accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $fb_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 $response = $fb_client->get('/me?fields=id,name', $accessToken); } catch (FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $user = $response->getGraphUser(); }
public function index() { $user_data = ""; // if(Session::has('login_type')){ // $_SESSION['login_type'] = Session::get('login_type'); // } if (isset($_SESSION['login_type'])) { if ($_SESSION['login_type'] == "facebook") { $fb = new Facebook\Facebook(['app_id' => Config::get('facebook.appid'), 'app_secret' => Config::get('facebook.secret'), 'default_graph_version' => 'v2.2']); $helper = $fb->getRedirectLoginHelper(); if (!isset($_SESSION['fb_access_token'])) { 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; } $oAuth2Client = $fb->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($accessToken); $tokenMetadata->validateAppId(Config::get('facebook.appid')); $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; } } $_SESSION['fb_access_token'] = (string) $accessToken; } try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,last_name', $_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->getGraphNode(); $user_data = array('type' => $_SESSION['login_type'], 'Name' => $user->getField('name'), 'ID' => $user->getField('id')); } else { if ($_SESSION['login_type'] == "google") { $user_data = array('type' => $_SESSION['login_type'], 'Name' => $_SESSION['name'], 'ID' => $_SESSION['id']); } else { if (isset($_REQUEST['oauth_verifier'])) { if (!isset($_SESSION['access_token'])) { $request_token = []; $request_token['oauth_token'] = $_SESSION['oauth_token']; $request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret']; $connection = new TwitterOAuth(Config::get('twitter.appid'), Config::get('twitter.secret'), $request_token['oauth_token'], $request_token['oauth_token_secret']); $access_token = $connection->oauth("oauth/access_token", array("oauth_verifier" => $_REQUEST['oauth_verifier'])); $_SESSION['access_token'] = $access_token; } } $access_token = $_SESSION['access_token']; $connection = new TwitterOAuth(Config::get('twitter.appid'), Config::get('twitter.secret'), $access_token['oauth_token'], $access_token['oauth_token_secret']); $user = $connection->get("account/verify_credentials"); $user_data = array('type' => $_SESSION['login_type'], 'Name' => $user->screen_name, 'ID' => $user->id); } } $user = App\user::where('oauthID', $user_data['ID'])->first(); if (is_null($user)) { return view('Registration.registration', $user_data); } $_SESSION['user_id'] = $user_data['ID']; return view('home', $user_data); } else { return redirect("/"); } }
<?php use Facebook\Facebook; use API\src\Config\Config; use API\src\Server\Session; require_once __DIR__ . '/../Autoload.php'; $fb = new Facebook(['app_id' => Config::getConfig('FacebookAppId'), 'app_secret' => Config::getConfig('FacebookSecret'), 'default_graph_version' => Config::getConfig('FacebookAPIVersion')]); $app = $fb->getApp(); $accessToken = $app->getAccessToken(); $accessTokenValue = $accessToken->getValue(); $oauth2 = $fb->getOAuth2Client(); $tokenMeta = $oauth2->debugToken($accessToken); $tokenMeta->validateAppId(Config::getConfig('FacebookAppId')); $tokenMeta->validateExpiration();
public function fallbackAction() { $fb = new Facebook(['app_id' => $this->getParameter('tanna_user.facebook.app_id'), 'app_secret' => $this->getParameter('tanna_user.facebook.app_secret'), 'default_graph_version' => 'v2.2']); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (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((string) $this->getParameter('tanna_user.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 (FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"; exit; } } try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,email,first_name,last_name,gender,locale,timezone,location,birthday', $accessToken); } catch (FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $facebookUser = $response->getGraphUser(); $om = $this->get('tanna_user.doctrine.om'); $user = $om->getRepository($this->getParameter('tanna_user.user.class'))->findOneByEmail($facebookUser['email']); //register user if ($user === null) { $response = $this->registerUser($facebookUser); if ($response instanceof UserInterface) { //login user and redirect him return $this->loginAndRedirect($response); } else { //@todo redirect and show errors die('show errors'); } } else { return $this->loginAndRedirect($user); } // 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'); }
public function facebookLogin() { // Small hack required for CakePHP 3.x and Facebook class if (!session_id()) { $this->request->session()->start(); } $fb = new Facebook\Facebook(['app_id' => FB_APP_ID, 'app_secret' => FB_SECRET, 'default_graph_version' => FB_API_VERSION]); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { $this->log('Graph returned an error: ' . $e->getMessage()); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { $this->log('Facebook SDK returned an error: ' . $e->getMessage()); exit; } if (!isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); $this->log("Error: " . $helper->getError()); $this->log("Error Code: " . $helper->getErrorCode()); $this->log("Error Reason: " . $helper->getErrorReason()); $this->log("Error Description: " . $helper->getErrorDescription()); } else { header('HTTP/1.0 400 Bad Request'); $this->log('Bad request'); } exit; } // Logged in $this->log($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); // 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(); 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; } } $response = $fb->get('/me?fields=id,name,email', (string) $accessToken); $facebookUser = $response->getGraphUser(); if ($this->validateUserExists($facebookUser['email'])) { $user = $this->Users->getByEmail($facebookUser['email']); } else { $userData = array('name' => $facebookUser['name'], 'phone' => null, 'email' => $facebookUser['email'], 'password' => '', 'modified' => new \DateTime('now'), 'created' => new \DateTime('now'), 'profile' => PROFILE_CUSTOMER, 'facebook_id' => $facebookUser['id']); $user = $this->Users->newEntity($userData); $user = $this->Users->save($user); } if ($user) { $this->Auth->setUser($user->toArray()); } $this->redirect('/dashboard'); }
public function loginFacebook() { $data = Session::get('data'); $fb = new Facebook\Facebook(['app_id' => config('socialpack.app_id'), 'app_secret' => config('socialpack.app_secret'), 'default_graph_version' => config('socialpack.default_graph_version')]); $helper = $fb->getRedirectLoginHelper(); $callback_url = url('/') . '/loginFacebook'; $permissions = ['user_birthday', 'user_location', 'user_website', 'email', 'user_friends', 'user_posts', 'user_photos', 'publish_pages', 'user_education_history', 'user_about_me', 'publish_actions']; // optional try { if (Session::has('facebook_access_token')) { $accessToken = $_SESSION['facebook_access_token']; } else { $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 (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']); } // validating the access token try { $request = $fb->get('/me'); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error if ($e->getCode() == 190) { unset($_SESSION['facebook_access_token']); $helper = $fb->getRedirectLoginHelper(); $loginUrl = $helper->getLoginUrl((string) $callback_url, $permissions); echo "<script>window.top.location.href='" . $loginUrl . "'</script>"; } exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($data) && !empty($data)) { if (isset($data['profile']) && !empty($data['profile'])) { if ($data['profile'] == "yes") { $profile = $this->getProfileInfoFacebook($fb); return $profile; } } if (isset($data['friends']) && !empty($data['friends'])) { if ($data['friends'] == "yes") { $friends = $this->getFiendsFacebook($fb); return $friends; } } if (isset($data['profile_image']) && !empty($data['profile_image'])) { if ($data['profile_image'] == "yes") { $profile_image = $this->getProfileImageFacebook($fb); return $profile_image; } } if (isset($data['published_post']) && !empty($data['published_post'])) { if ($data['published_post'] == "yes") { $published_post = $this->getPublishPostFacebook($fb); return $published_post; } } if (isset($data['like_pages']) && !empty($data['like_pages'])) { if ($data['like_pages'] == "yes") { $like_pages = $this->getLikePagesFacebook($fb); return $like_pages; } } if (isset($data['all_photos']) && !empty($data['all_photos'])) { if ($data['all_photos'] == "yes") { $all_photos = $this->getAllPhotosFacebook($fb); return $all_photos; } } if (isset($data['published_post']) && !empty($data['published_post'])) { if ($data['published_post'] == "yes") { $published_post = $this->getPublishPostFacebook($fb); return $published_post; } } if (isset($data['post_timeline']) && !empty($data['post_timeline'])) { if ($data['post_timeline']["show"] == "yes") { $post_timeline = $this->postOnTimelineFacebook($fb, $data['post_timeline']["message"]); return $post_timeline; } } if (isset($data['post_link_timeline']) && !empty($data['post_link_timeline'])) { if ($data['post_link_timeline']["show"] == "yes") { $post_timeline = $this->postLinkOnTimelineFacebook($fb, $data['post_link_timeline']["link"]); return $post_timeline; } } if (isset($data['post_image_timeline']) && !empty($data['post_image_timeline'])) { if ($data['post_image_timeline']["show"] == "yes") { $post_image_timeline = $this->postImageOnTimelineFacebook($fb, $data['post_timeline']["message"], $data['post_timeline']["url"]); return $post_image_timeline; } } } } else { // replace your website URL same as added in the developers.facebook.com/apps e.g. if you used http instead of https and you used non-www version or www version of your website then you must add the same here $loginUrl = $helper->getLoginUrl((string) $callback_url, $permissions); echo '<a href="' . $loginUrl . '">Log in with Facebook!</a>'; } }
/** * @Route("/fb-callback", name="fb-callback") */ public function callbackAction(Request $request) { #validar que session este inicializado if (!session_id()) { session_start(); } $fb = new Facebook(['app_id' => '460859080767262', 'app_secret' => '69915f389cdfa981be8dfb98276cbaf2', 'default_graph_version' => 'v2.5']); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (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('460859080767262'); // 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 (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; $session = new Session(); $session->set('fb_access_token', (string) $accessToken); #get info user try { // Returns a `Facebook\FacebookResponse` object $response = $fb->get('/me?fields=id,name,email', $accessToken); } catch (FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $user = $response->getGraphUser(); echo '<br><br>Name: ' . $user['name']; echo '<br><br>Email: ' . $user['email']; // 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'); //echo $this->generateUrl('loged');exit; return $this->redirect($this->generateUrl('facebook')); }
/** * @param Request $request * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function facebookCodeAction(Request $request) { try { $session = new Session(); $session->start(); } catch (\Exception $ex) { } $appId = $this->getParameter("gfb_social_client.facebook.app_id"); $appSecret = $this->getParameter("gfb_social_client.facebook.app_secret"); $version = $this->getParameter("gfb_social_client.facebook.version"); $fb = new Facebook(array("app_id" => $appId, "app_secret" => $appSecret, "default_graph_version" => $version)); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (FacebookResponseException $e) { echo "Graph returned an error: " . $e->getMessage(); exit; } catch (FacebookSDKException $e) { 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($appId); // 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 (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[FacebookService::FB_ACCESS_TOKEN_SESSION] = (string) $accessToken; // 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'); return null; }
public function processFBLogin(Request $request) { $fb = new Facebook(['app_id' => config('facebook.app_id'), 'app_secret' => config('facebook.app_secret'), 'default_graph_version' => 'v2.2']); $redirect_url = $request->getSchemeAndHttpHost() . '/fblogin'; $code = $request->input('code'); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); if (!$accessToken->isLongLived()) { $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } $fb->setDefaultAccessToken($accessToken); $response = $fb->get('/me?fields=id,name,email'); $plainOldArray = $response->getDecodedBody(); //if user exist sign them in otherwise sign them up $query = ParseUser::query(); $query->equalTo("username", 'FB:' . $plainOldArray['id']); $results = $query->find(); if (count($results) === 1) { $user = ParseUser::logIn('FB:' . $plainOldArray['id'], config('facebook.upwd')); $user->set('social', "facebook:" . $accessToken); return $this->determineRoute($request); } else { $user = new ParseUser(); $user->set("username", 'FB:' . $plainOldArray['id']); $user->set("password", config('facebook.upwd')); $user->set("email", "FB_" . $plainOldArray['email']); $user->set("name", $plainOldArray['name']); $user->set("realEmail", $plainOldArray['email']); $user->set("social", "facebook:" . $accessToken); try { $user->signUp(); return $this->determineRoute($request); } catch (ParseException $ex) { var_dump("Save Error"); // Show the error message somewhere and let the user try again. echo "Error: " . $ex->getCode() . " " . $ex->getMessage(); var_dump($plainOldArray['email']); var_dump($accessToken); die; } } } catch (FacebookRequestException $ex) { // When Facebook returns an error echo "Error: " . $ex->getCode() . " " . $ex->getMessage(); die; } catch (\Exception $ex) { // When validation fails or other local issues //var_dump($plainOldArray['email']); //var_dump($accessToken); echo "Error: " . $ex->getCode() . " " . $ex->getMessage(); die; } if (!empty($accessToken)) { // Logged in. //$access_token = $helper->getAccessToken(); echo "LOGGED IN"; die; } else { 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"; exit; } else { return redirect()->route('login'); } } }
public function callback() { $fb = new Facebook(['app_id' => Config::get('facebook.app_id'), 'app_secret' => Config::get('facebook.app_secret'), 'default_graph_version' => Config::get('facebook.default_graph_version'), 'persistent_data_handler' => Config::get('facebook.persistent_data_handler')]); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error return Redirect::to('/')->with('mensaje', 'Graph returned an error: ' . $e->getMessage()); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues return Redirect::to('/')->with('mensaje', '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::get('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) { return Redirect::to('/')->with('mensaje', "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>\n\n"); exit; } //echo '<h3>Long-lived</h3>'; //var_dump($accessToken->getValue()); } Session::put('fb_access_token', (string) $accessToken); // User is logged in with a long-lived access token. // You can redirect them to a members-only page. return Redirect::to('/')->with('mensaje', 'Ya puede publicar'); }