コード例 #1
1
ファイル: Facebook.php プロジェクト: hybridauth/hybridauth
 /**
  * {@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());
 }
コード例 #2
0
 /**
  * @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;
 }
コード例 #3
0
ファイル: FacebookHelper.php プロジェクト: VickoFranic/gigspy
 public function getAccessTokenFromRedirect()
 {
     try {
         $token = $this->facebook->getRedirectLoginHelper()->getAccessToken();
         return $token;
     } catch (\Exception $e) {
         abort(500);
     }
 }
コード例 #4
0
ファイル: FacebookService.php プロジェクト: dimak08/quiz
 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();
 }
コード例 #5
0
ファイル: FacebookLogin.php プロジェクト: knedle/social-login
 /**
  * @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();
 }
コード例 #7
0
 /**
  * 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);
 }
コード例 #8
0
 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');
 }
コード例 #9
0
 /**
  * @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();
 }
コード例 #10
0
 /**
  * @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));
 }
コード例 #11
0
ファイル: smmController.php プロジェクト: khakanali/OpenMAll
 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;
 }
コード例 #12
0
 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');
 }
コード例 #13
0
 /**
  * @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));
 }
コード例 #14
0
 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);
 }
コード例 #15
0
 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');
     }
 }
コード例 #16
0
 /**
  * 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"));
 }
コード例 #17
0
 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));
 }
コード例 #18
0
 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"));
     }
 }
コード例 #19
0
ファイル: fbBot.php プロジェクト: klkuo/toys_play
<?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);
コード例 #20
0
<?
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
コード例 #21
0
ファイル: Facebook.php プロジェクト: taekunger/kodekit
 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();
 }
コード例 #22
0
 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());
 }
コード例 #23
0
 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);
     }
 }
コード例 #24
0
 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());
 }
コード例 #25
0
 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>';
     }
 }
コード例 #26
0
 /**
  * @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'));
 }
コード例 #27
0
 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("/");
     }
 }
コード例 #28
0
 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');
         }
     }
 }
コード例 #29
0
 /**
  * @return FacebookRedirectLoginHelper
  */
 public function getLoginHelper()
 {
     return $this->facebook->getRedirectLoginHelper();
 }
コード例 #30
0
 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();
 }