/** * {@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 bool|\Facebook\Authentication\AccessToken|null * @throws Exceptions\FacebookSDKException */ protected function _getAccessToken() { $redirectLoginHelper = $this->_facebook->getRedirectLoginHelper(); try { $accessToken = $redirectLoginHelper->getAccessToken(); } catch (FacebookResponseException $e) { CakeLog::write('AuthManager', 'Graph returned an error: ' . $e->getMessage()); return false; } catch (FacebookSDKException $e) { CakeLog::write('AuthManager', 'Facebook SDK returned an error: ' . $e->getMessage()); return false; } $oAuth2Client = $this->_facebook->getOAuth2Client(); $tokenMetadata = $oAuth2Client->debugToken($accessToken); try { $tokenMetadata->validateAppId(Configure::read('FacebookAds.app_id')); $tokenMetadata->validateExpiration(); } catch (FacebookSDKException $e) { CakeLog::write('AuthManager', 'Facebook SDK returned an error: ' . $e->getMessage()); return false; } if (!$accessToken->isLongLived()) { try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (FacebookSDKException $e) { CakeLog::write('AuthManager', 'Error getting long-lived access token: ' . $e->getMessage()); return false; } } return $accessToken; }
public function getAccessTokenFromRedirect() { try { $token = $this->facebook->getRedirectLoginHelper()->getAccessToken(); return $token; } catch (\Exception $e) { abort(500); } }
public function __construct($appId, $appSecret, PersistentDataInterface $persistentDataHandler, Router $router, Registry $doctrine, $tokenStorage, $adminId) { $this->router = $router; $this->doctrine = $doctrine; $this->tokenStorage = $tokenStorage; $this->adminId = $adminId; $this->facebook = new Facebook(['app_id' => $appId, 'app_secret' => $appSecret, 'default_graph_version' => 'v2.4', 'persistent_data_handler' => $persistentDataHandler]); $this->helper = $this->facebook->getRedirectLoginHelper(); }
/** * @param $params array - data from config.neon * @param $cookieName String cookie name * @param Nette\Http\Response $httpResponse * @param Nette\Http\Request $httpRequest */ public function __construct($params, $cookieName, Nette\Http\Response $httpResponse, Nette\Http\Request $httpRequest) { $this->params = $params; $this->cookieName = $cookieName; $this->httpResponse = $httpResponse; $this->httpRequest = $httpRequest; $this->callBackUrl = $this->params["callbackURL"]; $this->fb = new Facebook\Facebook(['app_id' => $this->params["appId"], 'app_secret' => $this->params["appSecret"], 'default_graph_version' => 'v2.5']); $this->helper = $this->fb->getRedirectLoginHelper(); }
public function __construct($container, $em, $session) { $this->container = $container; $this->em = $em; $this->session = $session; $app_id = $this->container->getParameter('kvk_scraper.facebook.app_id'); $app_secret = $this->container->getParameter('kvk_scraper.facebook.secret'); $this->fb = new Facebook(['app_id' => $app_id, 'app_secret' => $app_secret, 'default_graph_version' => 'v2.5']); $this->fb->setDefaultAccessToken(implode('|', [$app_id, $app_secret])); $this->fb_helper = $this->fb->getRedirectLoginHelper(); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $fb = new Facebook(['app_id' => env('FACEBOOK_APP_ID'), 'app_secret' => env('FACEBOOK_APP_SECRET'), 'default_graph_version' => 'v2.5']); $helper = $fb->getRedirectLoginHelper(); try { if (isset($_SESSION['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)) { $_SESSION['facebook_access_token'] = (string) $accessToken; return $next($request); } $permissions = ['public_profile', 'publish_actions']; $loginUrl = $helper->getLoginUrl(env('CALLBACK'), $permissions); return redirect($loginUrl); }
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'); }
/** * @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(); }
/** * @Route("/login", name="login") */ public function loginAction(Request $request) { $this->get('session')->start(); $fb = new Facebook(['app_id' => '1690300947880602', 'app_secret' => '0b6107ea187ee9cd79adc66a2dd84254', 'default_graph_version' => 'v2.5', 'persistent_data_handler' => 'session']); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email']; // Optional permissions $loginUrl = $helper->getLoginUrl($this->generateUrl('homepage', array(), true), $permissions); return $this->render('login/login.html.twig', array("loginUrl" => $loginUrl)); }
public function callback() { $app_id = env('FACEBOOK_APP_ID'); $app_secret = env('FACEBOOK_APP_SECRET'); $app_graph = env('default_graph_version'); $fb = new Facebook(['app_id' => $app_id, 'app_secret' => $app_secret, 'default_graph_version' => $app_graph, 'default_access_token' => '903539709730443|d46fd1d4d733eda0600f3f29b1d818eb']); $helper = $fb->getRedirectLoginHelper(); $token = $helper->getAccessToken(); //echo $token; }
public function loginCallback() { $fb = new Facebook(['app_id' => '709854915792963', 'app_secret' => '74e61a2eaf730835d8b4b39ec3aede8e', '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)) { // Logged in! $access_token = (string) $accessToken; // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] } $response = $fb->get('/me?fields=id,name,email', $access_token); $me = $response->getGraphUser(); $uid = $me['id']; //return $uid; if ($uid == 0) { return Redirect::to('/')->with('message', 'There was an error'); } //return $user; $profile = App\Profile::whereUid($uid)->first(); //if user does not exist create user if (empty($profile)) { $user = new App\User(); $existinguser = App\User::whereemail($me['email'])->first(); if (empty($existinguser)) { $user->name = $me['name']; $user->email = $me['email']; //$user->uid=$uid; $user->save(); } $profile = new App\Profile(); $profile->photo = 'https://graph.facebook.com/' . $me['id'] . '/picture?type=large'; $user->email = $me['email']; $profile->uid = $uid; $profile->username = $me['name']; $profile = $user->profiles()->save($profile); } //else only update his access token $profile->access_token = $access_token; $profile->save(); $user = $profile->users; //login the user Auth::login($user); return Redirect::to('/dashboard'); }
/** * @Route("/login", name="fb_login") * @param Request $request * @return Response */ public function loginAction(Request $request) { $fb = new Facebook(['app_id' => self::APP_ID, 'app_secret' => self::APP_SECRET]); $helper = $fb->getRedirectLoginHelper(); $access_token = $this->get('session')->get('facebook_access_token'); if (!$access_token) { $access_token = (string) $helper->getAccessToken(); if ($access_token) { $this->get('session')->set('facebook_access_token', $access_token); } } $destUrl = $this->generateUrl('fb_login', [], UrlGeneratorInterface::ABSOLUTE_URL); $loginUrl = $helper->getLoginUrl($destUrl, ['ads_management', 'manage_pages', 'publish_pages']); return $this->render('AppBundle:AdWords:facebook_login.html.twig', array('loginUrl' => $loginUrl, 'destUrl' => $destUrl, 'appId' => self::APP_ID)); }
public function 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(); 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; } $loginUrl = $helper->getLoginUrl('http://localhost:8000/home'); $_SESSION['login_type'] = "facebook"; return redirect($loginUrl); }
public function fbcallback() { //Initialize facebook api $fb = new Facebook(['app_id' => self::FB_APP_ID, 'app_secret' => self::FB_APP_SECRET, 'default_graph_version' => self::FB_APP_VERSION]); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($accessToken)) { // Logged in! $fb->setDefaultAccessToken($accessToken); try { $response = $fb->get('/me?locale=en_US&fields=name,email,gender,age_range,picture,first_name,last_name,middle_name,birthday,hometown'); $userNode = $response->getGraphUser(); } catch (Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } $this->loadComponent('GeoIP'); $pictureUser = $userNode->getPicture()->asArray(); $userNode = array('type' => 0, 'status' => 1, 'password' => str_replace(' ', '', strtolower($userNode->getName())), 'email' => $userNode->getEmail(), 'full_name' => $userNode->getName(), 'gender' => $userNode->getGender(), 'image' => $pictureUser['url'], 'birthday' => $userNode->getBirthday(), 'address' => $userNode->getHometown(), 'facebook' => 'https://www.facebook.com/' . $userNode->getId()); // Now you can redirect to another page and use the $this->request->session()->write('fb_user', $userNode); $this->redirect('/users/register'); } }
/** * Methode de callback appelé par facebook après le login * * @return object */ public function callbackFbAction() { if (!session_id()) { session_start(); } $fb = new Facebook(["app_id" => self::fb_appId, "app_secret" => self::fb_secret, 'default_graph_version' => 'v2.4']); $helper = $fb->getRedirectLoginHelper(); //Tentative de récupération de l'access token try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); } //Si l'access token a été récupéré, on le stocke en session if (isset($accessToken)) { $_SESSION['facebook_access_token'] = (string) $accessToken; } elseif ($helper->getError()) { print_r($helper->getError()); } return $this->redirect($this->generateUrl("facebook_menu_homepage")); }
public function indexAction(Request $request) { $userManager = $this->get("tanna_user.user.manager"); /** @var $user \Tanna\UserBundle\Model\User **/ $user = $userManager->createUser(); $user->setEnabled(true); $form = $this->get('tanna_user.user.form_factory.registration')->createForm(); $form->setData($user); $form->handleRequest($request); if ($form->isValid()) { $om = $this->get('tanna_user.doctrine.om'); $userManager->updateUser($user); } $facebookLoginUrl = null; //if facebook is activated if (!empty($this->getParameter('tanna_user.facebook.app_id'))) { $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(); $permissions = ['email', 'public_profile', 'user_friends', 'user_birthday', 'user_location']; // Optional permissions $facebookLoginUrl = $helper->getLoginUrl($request->getSchemeAndHttpHost() . '' . $this->generateUrl('tanna_user_facebook_fallback', array(), true), $permissions); } return $this->render('TannaUserBundle:Registration:index.html.twig', array('form' => $form->createView(), 'facebookLoginUrl' => $facebookLoginUrl)); }
public function getTokenAction() { $fb = new Facebook(self::fb_parameters); // Use one of the helper classes to get a Facebook\Authentication\AccessToken entity. $helper = $fb->getRedirectLoginHelper(); // $helper = $fb->getJavaScriptHelper(); // $helper = $fb->getCanvasHelper(); // $helper = $fb->getPageTabHelper(); //Get token try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph returned an error: ' . $e->getMessage(); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK returned an error: ' . $e->getMessage(); } //Save token in a session variable then redirect if (isset($accessToken)) { $_SESSION['facebook_access_token'] = (string) $accessToken; return $this->redirect($this->generateUrl("facebook_menu_show")); } else { return $this->redirect($this->generateUrl("facebook_menu_homepage")); } }
<?php require __DIR__ . '/config.php'; use Facebook\Facebook; use Facebook\FacebookRequest; $fbObject = new Facebook(['app_id' => APP_ID, 'app_secret' => APP_SECRET, 'default_graph_version' => GRAPH_VERSION]); $helper = $fbObject->getRedirectLoginHelper(); // Optional permissions $permissions = array('email', 'user_managed_groups'); $loginUrl = $helper->getLoginUrl('https://example.com/callback.php', $permissions); echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>'; //$result = $fb->get('/708393292572716?fields=feed', ACCESS_TOKEN);
<? require_once __DIR__ . '/vendor/autoload.php'; use Facebook\Facebook; use Facebook\Exceptions\FacebookResponseException; use Facebook\Exceptions\FacebookSDKException; // Init PHP Sessions session_start(); $fb = new Facebook([ 'app_id' => '1708507849381750', 'app_secret' => '{your-app-secret}', ]); $helper = $fb->getRedirectLoginHelper(); if (!isset($_SESSION['facebook_access_token'])) { $_SESSION['facebook_access_token'] = null; } if (!$_SESSION['facebook_access_token']) { $helper = $fb->getRedirectLoginHelper(); try { $_SESSION['facebook_access_token'] = (string) $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
function __construct() { $fb = new Facebook(['app_id' => Config::extra('social.facebook.app_id'), 'app_secret' => Config::extra('social.facebook.app_secret'), 'default_graph_version' => Config::extra('social.facebook.default_graph_version')]); $this->helper = $fb->getRedirectLoginHelper(); }
public function testCanInjectCustomHandlers() { $config = array_merge($this->config, ['http_client_handler' => new FooClientInterface(), 'persistent_data_handler' => new FooPersistentDataInterface(), 'url_detection_handler' => new FooUrlDetectionInterface(), 'pseudo_random_string_generator' => new FooBarPseudoRandomStringGenerator()]); $fb = new Facebook($config); $this->assertInstanceOf('Facebook\\Tests\\FooClientInterface', $fb->getClient()->getHttpClientHandler()); $this->assertInstanceOf('Facebook\\Tests\\FooPersistentDataInterface', $fb->getRedirectLoginHelper()->getPersistentDataHandler()); $this->assertInstanceOf('Facebook\\Tests\\FooUrlDetectionInterface', $fb->getRedirectLoginHelper()->getUrlDetectionHandler()); $this->assertInstanceOf('Facebook\\Tests\\FooBarPseudoRandomStringGenerator', $fb->getRedirectLoginHelper()->getPseudoRandomStringGenerator()); }
function fbLogin() { // Initialize the SDK. //FacebookSession::setDefaultApplication($this->app_id, $this->app_secret); $facebook = new Facebook(array('app_id' => '1545133145805354', 'app_secret' => 'e2f35895f03c06a6a757ff30f267dc43', 'default_graph_version' => 'v2.3')); //$redirectHelper = new FacebookRedirectLoginHelper($this->redirect_url); $access_token_session = $this->session->userdata('access_token'); //Authorize the user try { } catch (FacebookRequestException $ex) { // When Facebook returns an error. print_r($ex); } catch (\Exception $ex) { // When validation fails or other local issues. print_r($ex); } if (isset($access_token_session)) { } else { // Generate the login URL for Facebook authentication. //$login_url = $redirectHelper->getLoginUrl(); $helper = $facebook->getRedirectLoginHelper(); $login_url = $helper->getLoginUrl("http://localhost:8080/FBlogin/index.php/" . "/Oauth_fb_Login/"); $data['login_url'] = $login_url; $this->load->view('fb_login', $data); print_r($login_url); } }
public function testCreatingANewRequestWillDefaultToTheProperConfig() { $config = array_merge($this->config, ['default_access_token' => 'foo_token', 'http_client_handler' => new FooClientInterface(), 'persistent_data_handler' => new FooPersistentDataInterface(), 'enable_beta_mode' => true, 'default_graph_version' => 'v1337']); $fb = new Facebook($config); $request = $fb->request('FOO_VERB', '/foo'); $this->assertInstanceOf('Facebook\\Tests\\FooClientInterface', $fb->getClient()->getHttpClientHandler()); $this->assertInstanceOf('Facebook\\Tests\\FooPersistentDataInterface', $fb->getRedirectLoginHelper()->getPersistentDataHandler()); $this->assertEquals(FacebookClient::BASE_GRAPH_URL_BETA, $fb->getClient()->getBaseGraphUrl()); $this->assertEquals('1337', $request->getApp()->getId()); $this->assertEquals('foo_secret', $request->getApp()->getSecret()); $this->assertEquals('foo_token', (string) $request->getAccessToken()); $this->assertEquals('v1337', $request->getGraphVersion()); }
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')); }
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("/"); } }
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'); } } }
/** * @return FacebookRedirectLoginHelper */ public function getLoginHelper() { return $this->facebook->getRedirectLoginHelper(); }
public function init() { $this->application = new Facebook(array('app_id' => $this->id, 'app_secret' => $this->secret, 'default_graph_version' => $this->defaultGraphVersion)); $this->helper = $this->application->getRedirectLoginHelper(); }