/**
  * 
  */
 public function verifyCredentials(Request $request)
 {
     $config = app()->make('config');
     $fb = new Facebook\Facebook(['app_id' => $config->get('services.facebook.client_id'), 'app_secret' => $config->get('services.facebook.client_secret'), 'default_graph_version' => 'v2.5']);
     $helper = $fb->getJavaScriptHelper();
     try {
         // $accessToken = $helper->getAccessToken();
         $accessToken = new AccessToken($request->input('accessToken'), $request->input('expiresIn'));
     } catch (Facebook\Exceptions\FacebookResponseException $e) {
         // When Graph returns an error
         echo 'Graph returned an error: ' . $e->getMessage();
         exit;
     } catch (Facebook\Exceptions\FacebookSDKException $e) {
         // When validation fails or other local issues
         echo 'Facebook SDK returned an error: ' . $e->getMessage();
         exit;
     }
     if (!isset($accessToken)) {
         echo 'No cookie set or no OAuth data could be obtained from cookie.';
         exit;
     }
     try {
         // Returns a `Facebook\FacebookResponse` object
         $response = $fb->get('/me?fields=id,name,email,picture,friends', $accessToken->getValue());
         /*$friendsResponse = $fb->get('/me/friends', $accessToken->getValue());
           //$result['data'];
           foreach($friendsResponse->getGraphEdge() as $node) {
             var_dump($node);
           }
           exit;*/
     } 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;
     }
     // Logged in
     $user = $response->getGraphUser();
     // var_dump($user);exit;
     // echo 'Name: ' . $user['name'];
     // $_SESSION['fb_access_token'] = (string) $accessToken;
     $authUser = $this->findOrCreateUser($user);
     app()['auth']->login($authUser, true);
     $hasher = app()->make('hash');
     /*var_dump( $hasher->make(
           "app()->make('config')->get('app.key')" . $authUser->facebook_id
       ));exit;*/
     return ['username' => $authUser->email, 'password' => app()->make('config')->get('app.pass_prefix') . $authUser->facebook_id];
     //return redirect()->route('home');
     // get posted credentials.
     // verify credentials against FB.
     // fetch user data.
     // check user existance: true => return user.
     // check user existance: false => register and return user.
 }
 public function fbUserInfoAction()
 {
     $fb = new Facebook(['app_id' => '1475718472749501', 'app_secret' => 'a67fee083c27186f52030ff3a72f24f9', 'default_graph_version' => 'v2.4']);
     try {
         $helper = $fb->getJavaScriptHelper();
         $accessToken = $helper->getAccessToken();
         $fb->setDefaultAccessToken((string) $accessToken);
         $response = $fb->get('/me?locale=en_US&fields=name,email');
         $userNode = $response->getGraphUser();
         $email = $userNode->getField('email');
         $name = $userNode->getField('name');
         $arr = explode("@", $email);
         $login = $arr[0];
         $arr2 = explode(" ", $name);
         $firstname = $arr2[0];
         $lastname = $arr2[1];
         return new JsonResponse(['firstname' => $firstname, 'lastname' => $lastname, 'login' => $login, 'email' => $email]);
     } 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;
     }
     exit;
 }
Esempio n. 3
0
 /**
  * Create a user account for the authenticated Facebook user.
  *
  * @return \Models\User
  * @throws \Facebook\Exceptions\FacebookSDKException
  * @throws \Facebook\Exceptions\FacebookSDKException
  * @throws \App\Exceptions\AccountDeactivatedException
  */
 public function registerWithFacebook()
 {
     // Load up the facebook sdk
     $fb = new Facebook(['app_id' => env('FACEBOOK_APP_ID'), 'app_secret' => env('FACEBOOK_APP_SECRET'), 'default_graph_version' => env('FACEBOOK_DEFAULT_GRAPH_VERSION')]);
     // Retrieve the access token
     $jsHelper = $fb->getJavaScriptHelper();
     $accessToken = $jsHelper->getAccessToken();
     if (!$accessToken) {
         throw new FacebookSDKException('The access token is invalid.');
     }
     // Get the profile info
     $profileResponse = $fb->get('/me', $accessToken);
     if ($profileResponse->getHttpStatusCode() != 200) {
         throw new FacebookSDKException('We could not retrieve your profile info.');
     }
     $profileInfo = $profileResponse->getGraphUser();
     // Check if the user is already registered
     $user = User::findBySocialAccountIdAndTypeId($profileInfo['id'], SocialAccountType::FACEBOOK);
     if ($user && !$user->active) {
         throw new AccountDeactivatedException();
     }
     // Create a new user account or update the existing one
     $user = $user ?: new User();
     $user->social_account_type_id = SocialAccountType::FACEBOOK;
     $user->social_account_id = $profileInfo['id'];
     $user->name = $profileInfo['name'];
     $user->email = isset($profileInfo['email']) ? $profileInfo['email'] : '';
     $user->location_name = isset($profileInfo['location']) ? $profileInfo['location']->getName() : '';
     $user->loggedin_at = date('Y-m-d H:i:s');
     $user->active = true;
     $user->save();
     return $user;
 }
Esempio n. 4
0
 public function facebook()
 {
     $this->load->library('session');
     $fb = new Facebook(['app_id' => '1068933233152181', 'app_secret' => 'cb86048c2ca95c034a26fe239e48a8eb']);
     /*
      *
      *@Trying to get and set the f*****g token
      *
      */
     if (null !== $this->session->userdata('fb_token') && !empty($this->session->userdata('fb_token'))) {
         $accessToken = $this->session->userdata('fb_token');
     } else {
         $jsHelper = $fb->getJavaScriptHelper();
         // @TODO This is going away soon
         $facebookClient = $fb->getClient();
         try {
             $accessToken = $jsHelper->getAccessToken($facebookClient);
             $this->session->set_userdata('fb_token', $accessToken);
         } catch (Facebook\Exceptions\FacebookResponseException $e) {
             // When Graph returns an error
             echo 'Graph returned an error: ' . $e->getMessage();
         } catch (Facebook\Exceptions\FacebookSDKException $e) {
             // When validation fails or other local issues
             echo 'Facebook SDK returned an error: ' . $e->getMessage();
         }
     }
     //@TODO exchange echo for error
     /*
      *
      *@After we get the token, get user name & email with it,
      *	assign it a pin code, register him in the db + token + time of creation 
      *	redirect him to upload controller
      */
     if (isset($accessToken)) {
         // Logged in.
         //@TODO set a time=10min session if !sess[time]
         //@TODO check for Message: Error validating access token: Session has expired on Sunday, 20-Dec-15 13:00:00 PST. The current time is Sunday, 20-Dec-15 13:03:57 PST.
         $response = $fb->get('/me?locale=en_US&fields=name,email', $accessToken);
         $userNode = $response->getGraphUser();
         $this->session->set_userdata('name', $userNode['name']);
         //@TODO figure out a way to use pin once, maybe through session.
         $data['access_token'] = $accessToken;
         $this->load->model('register_model');
         //Create & check if pin is in use
         do {
             $pin = $this->generate_pin();
         } while ($this->register_model->check_pin($pin) === FALSE);
         if ($this->register_model->add($userNode['name'], $userNode['email'], $pin)) {
             $this->session->set_userdata('pin', $pin);
             $this->session->redirect(site_url('/upload'));
         }
     } else {
         //@TODO CREATE AN ERROR PAGE
         echo "Unable to read JavaScript SDK cookie";
     }
 }
Esempio n. 5
0
 /**
  *
  * @return Ambigous <\App\Helper\mixed, unknown, mixed>
  */
 public function getAccessToken()
 {
     if ($this->session->get('facebook_access_token')) {
         return $this->session->get('facebook_access_token');
     }
     $helper = $this->facebook->getJavaScriptHelper();
     try {
         $accessToken = $helper->getAccessToken();
     } catch (FacebookResponseException $e) {
         $this->logger->error('error: ' . $e->getMessage());
     } catch (FacebookSDKException $e) {
         $this->logger->error('Facebook SDK returned an error: ' . $e->getMessage());
     }
     if (!isset($accessToken)) {
         $this->logger->error('No cookie set or no OAuth data could be obtained from cookie.');
     } else {
         $this->logger->debug('Store new access token : ' . $accessToken);
         $this->session->set('facebook_access_token', (string) $accessToken);
     }
     return $this->session->get('facebook_access_token');
 }
 public function fbcallback()
 {
     $fb = new Facebook\Facebook(['app_id' => Config::get("facebook.appId"), 'app_secret' => Config::get("facebook.secret")]);
     $jsHelper = $fb->getJavaScriptHelper();
     // @TODO This is going away soon
     $facebookClient = $fb->getClient();
     try {
         $accessToken = $jsHelper->getAccessToken($facebookClient);
     } catch (Facebook\Exceptions\FacebookResponseException $e) {
         // When Graph returns an error
         return Redirect::to('/')->with('message', 'Graph returned an error: ' . $e->getMessage());
     } catch (Facebook\Exceptions\FacebookSDKException $e) {
         // When validation fails or other local issues
         return Redirect::to('/')->with('message', 'Facebook SDK returned an error: ' . $e->getMessage());
     } catch (Exception $e) {
         // generic exception
         return Redirect::to('/')->with('message', 'There was an error');
     }
     if (!isset($accessToken)) {
         return Redirect::to('/')->with('message', 'There was an error');
     }
     $response = $fb->get('/me?fields=id,name,email', $accessToken);
     $me = $response->getGraphObject();
     $gotoProfileCompletePage = false;
     $profile = Profile::whereUid($me['id'])->first();
     if (empty($profile)) {
         $user = new User();
         $user->name = $me['name'];
         $user->email = $me['email'];
         //$user->photo_large = 'https://graph.facebook.com/'.$me['username'].'/picture?type=large';
         $user->save();
         $profile = new Profile();
         $profile->uid = $me['id'];
         $profile->username = $me['email'];
         $profile->origin = 'fb';
         $profile->access_token = $accessToken;
         $profile->access_token_secret = $accessToken;
         $profile = $user->profiles()->save($profile);
         // first time, need to complete profile
         $gotoProfileCompletePage = true;
     }
     $profile->access_token = $accessToken;
     $profile->save();
     $user = $profile->user;
     Auth::login($user);
     if ($gotoProfileCompletePage) {
         return redirect('/login/complete');
     } else {
         return redirect('/');
     }
 }
Esempio n. 7
0
 /**
  * @Route("/callback", name="callback")
  */
 public function callbackAction(Request $request)
 {
     $fb = new Facebook(['app_id' => $this->container->getParameter('fb_app_id'), 'app_secret' => $this->container->getParameter('fb_app_secret'), 'default_graph_version' => 'v2.5']);
     $accessToken = $fb->getJavaScriptHelper()->getAccessToken();
     if (!$accessToken) {
         throw new \RuntimeException('No cookie set or no OAuth data could be obtained from cookie');
     }
     $userInfo = $fb->get('/me?fields=id,name,email', $accessToken->getValue())->getDecodedBody();
     if (!isset($userInfo['id'])) {
         throw new \RuntimeException('Bad credentials');
     }
     $this->storeUserInfo($userInfo);
     return $this->redirectToRoute('homepage');
 }
 /**
  * Example middleware invokable class
  *
  * @param  \Psr\Http\Message\ServerRequestInterface $request  PSR7 request
  * @param  \Psr\Http\Message\ResponseInterface      $response PSR7 response
  * @param  callable                                 $next     Next middleware
  *
  * @return \Psr\Http\Message\ResponseInterface
  */
 public function __invoke($request, $response, $next)
 {
     if (isset($_REQUEST['accessToken'])) {
         $accessToken = $_REQUEST['accessToken'];
         $this->fb->setDefaultAccessToken($accessToken);
     } else {
         /* @var $helper FacebookJavaScriptHelper */
         $helper = $this->fb->getJavaScriptHelper();
         $accessToken = $helper->getAccessToken();
     }
     if (!isset($accessToken)) {
         die("Not logged in or request expired");
     }
     try {
         /* @var $fbresponse FacebookResponse */
         $fbresponse = $this->fb->get('/me?fields=id', $accessToken);
         $user = $fbresponse->getGraphUser();
     } catch (Exception $e) {
         die($e->getMessage());
     }
     $next->setArgument('userid', $user->getId());
     $response = $next($request, $response);
     return $response;
 }
Esempio n. 9
0
 /**
  * Get band page data - name, genre, about, bio, band_members, photos 
  *
  * @param Illuminate\Http\Request;
  * @return mixed
  */
 public function getPageDataFromId(Request $request)
 {
     $this->id = $request->input('id');
     $facebook = new Facebook();
     $helper = $facebook->getJavaScriptHelper();
     $accessToken = $helper->getAccessToken();
     $query = '/' . $this->id . '?fields=name,genre,about,bio,band_members,picture.width(400).height(400),cover,albums{photos{images.width(500).height(500)}}';
     $band = $facebook->get($query, $accessToken)->getDecodedBody();
     //VALIDATOR NAPRAVITI
     if (!isset($band['bio'])) {
         $band['bio'] = 'Nema upisane biografije.';
     }
     if (!isset($band['genre'])) {
         $band['genre'] = '';
     }
     if (!isset($band['members'])) {
         $band['members'] = 'Nema upisanih članova benda.';
     }
     $this->band = $band;
     $this->storeBand($band);
     return view('app')->with('band', $band);
 }
 /**
  * Returns the JavaScript helper.
  *
  * @return  \Facebook\Helpers\FacebookJavaScriptHelper
  */
 public function getJavaScriptHelper()
 {
     return $this->fb->getJavaScriptHelper();
 }
Esempio n. 11
0
 /**
  * @author: lmkhang - skype
  * @date: 2015-12-28
  * Getting and Processing registration from FB API
  *
  */
 public function callback_facebook(Request $request)
 {
     //Check isLogged
     if ($this->isLogged()) {
         die;
     }
     //get Info of Dailymotion's API
     $fbook['api_key'] = \App\Config::where(['prefix' => 'fb', 'name' => 'api_key', 'del_flg' => 1])->get()[0]['value'];
     $fbook['api_secret'] = \App\Config::where(['prefix' => 'fb', 'name' => 'api_secret', 'del_flg' => 1])->get()[0]['value'];
     $fbook['scope'] = \App\Config::where(['prefix' => 'fb', 'name' => 'scope', 'del_flg' => 1])->get()[0]['value'];
     $fbook['url_callback'] = \App\Config::where(['prefix' => 'fb', 'name' => 'url_callback', 'del_flg' => 1])->get()[0]['value'];
     $fb = new Facebook(['app_id' => $fbook['api_key'], 'app_secret' => $fbook['api_secret'], 'default_graph_version' => 'v2.5']);
     $helper = $fb->getJavaScriptHelper();
     try {
         $accessToken = $helper->getAccessToken();
     } catch (FacebookResponseException $e) {
         // When Graph returns an error
         return Redirect::intended('/')->with('message', 'Hacking!!!!');
     } catch (FacebookSDKException $e) {
         // When validation fails or other local issues
         echo 'Facebook SDK returned an error: ' . $e->getMessage();
         exit;
     }
     if (!isset($accessToken)) {
         echo 'No cookie set or no OAuth data could be obtained from cookie.';
         exit;
     }
     // Logged in
     if ($accessToken) {
         //set Facebook Login SESSION
         $session = new \Symfony\Component\HttpFoundation\Session\Session();
         $session->set('fb_access_token', (string) $accessToken);
         //get Info of User
         $fb->setDefaultAccessToken((string) $accessToken);
         #These will fall back to the default access token
         try {
             $res = $fb->get('/me?fields=id,name,email,first_name,last_name');
         } catch (FacebookSDKException $e) {
             echo $e->getMessage();
         }
         $user_get = $res->getGraphObject();
         //Check existed account
         $registration_system = config('constant.registration');
         $user = $this->checkAccountSNS(['username' => $user_get->getField('id')], $registration_system['facebook']);
         if (!$user) {
             //insert
             $match = new Libraries\Math();
             $register['refer'] = $match->to_base(rand(10, 30) . substr(time(), 5, 10) . rand(10, 30), 62) . $match->to_base(rand(100, 300) . substr(time(), 5, 10) . rand(100, 300), 62) . $match->to_base(rand(100, 300) . substr(time(), 5, 10) . rand(100, 300), 62);
             //from_refer
             if ($this->hasFlash('refer')) {
                 $register['from_refer'] = $this->getFlash('refer');
             } else {
                 $register['from_refer'] = 'no_refer';
             }
             $message_refer = $this->checkUserAttributes($register);
             $user = new \App\User();
             $user->refer = $register['refer'];
             $user->from_refer = !$message_refer ? $register['from_refer'] : '';
             $user->username = $user_get->getField('id');
             $user->first_name = $user_get->getField('first_name');
             $user->last_name = $user_get->getField('last_name');
             $user->full_name = $user_get->getField('name');
             $user->email = '';
             //$user_get->getField('email');
             $user->del_flg = 1;
             $user->registration_system = $registration_system['facebook'];
             $user->save();
             //Insert User Stats
             $user_stats = new \App\UserStats();
             $user_stats->user_id = $user->user_id;
             $user_stats->total = 0;
             $user_stats->del_flg = $user->del_flg;
             $user_stats->save();
         }
         //Set Session
         $this->setLogSession(['email' => $user->email, 'user_id' => $user->user_id, 'registration_system' => $user->registration_system]);
         //set Flash Message
         $this->setFlash('message', 'Welcome to MCN!');
         return Redirect::intended('/')->with('message', 'Welcome to MCN!');
     }
     //set Flash Message
     $this->setFlash('message', 'Error!');
     return Redirect::intended('/')->with('message', 'Error!');
 }
Esempio n. 12
0
 /**
  * @Route("/logincallback")
  */
 public function loginCallbackAction()
 {
     $fb = new Facebook(['app_id' => '763157317118688', 'app_secret' => '41ed5213e2e9161f8f31bf77c5e5c9e3', 'default_graph_version' => 'v2.5']);
     $helper = $fb->getJavaScriptHelper();
     try {
         $accessToken = $helper->getAccessToken();
     } catch (FacebookSDKException $e) {
         // When Graph returns an error
         echo 'Graph returned an error: ' . $e->getMessage();
     } catch (FacebookSDKException $e) {
         // When validation fails or other local issues
         echo 'Facebook SDK returned an error: ' . $e->getMessage();
     }
     if (isset($accessToken)) {
         $fb->setDefaultAccessToken($accessToken);
         try {
             $requestProfile = $fb->get("/me?fields=id,name,email");
             $profile = $requestProfile->getGraphNode()->asArray();
         } catch (FacebookSDKException $e) {
             // When Graph returns an error
             echo 'Graph returned an error: ' . $e->getMessage();
         } catch (FacebookSDKException $e) {
             // When validation fails or other local issues
             echo 'Facebook SDK returned an error: ' . $e->getMessage();
         }
         $this->session->set('username', $profile['name']);
         $this->session->set('email', $profile['email']);
         if (!$this->checkFbIdExistinUserFor($profile['id'] . '_fb')) {
             $user = new User();
             $user->setUsername($profile['id'] . "_fb");
             $user->setHash($this->makeHash($profile['name'], $profile['email']));
             $user->setEmail($profile['email']);
             $user->setActivated(1);
             $user->setAvatarSrc($profile['id']);
             $user->setCreated(time());
             $em = $this->getDoctrine()->getManager();
             $em->persist($user);
             $em->flush();
         }
         $fb_user_id = $this->getUserResultFor($profile['id'] . "_fb")[0]['id'];
         $fb_username = $this->getUserResultFor($profile['id'] . "_fb")[0]['username'];
         $fb_created = $this->getUserResultFor($profile['id'] . "_fb")[0]['created'];
         $fb_avatar_src = $this->getUserResultFor($profile['id'] . "_fb")[0]['avatar_src'];
         $fb_email = $this->getUserResultFor($profile['id'] . "_fb")[0]['email'];
         $this->session->set('username', $fb_username);
         $this->session->set('fb_realm_name', $profile['name']);
         $this->session->set('user_id', $fb_user_id);
         $this->session->set('avatar_src', $fb_avatar_src);
         $this->session->set('email', $fb_email);
         $this->session->set('created', date('D M j G:i:s ', $fb_created));
         $this->session->set('fb_login', true);
         return $this->redirectToRoute('app_dashboard_account');
     } else {
         echo "Unauthorized access!!!";
         exit;
     }
 }
 public function facebookAuth(Request $request, $slug)
 {
     try {
         $stack = Stack::where('slug', '=', $slug)->firstOrFail();
         $stackIntegration = StackIntegration::where('stack_id', '=', $stack->id)->where('type', '=', 'facebook')->where('is_enabled', '=', true)->firstOrFail();
         $fb = new Facebook(['app_id' => $stackIntegration->config['appId'], 'app_secret' => $stackIntegration->config['appSecret'], 'default_graph_version' => 'v2.4']);
         $jsHelper = $fb->getJavaScriptHelper();
         $accessToken = $jsHelper->getAccessToken();
         if (!isset($accessToken)) {
             throw new Exeption('Facebook Authentication failed');
         }
         $fb->setDefaultAccessToken($accessToken);
         $response = $fb->get('/me?fields=email,name,first_name,last_name,locale,gender');
         $userNode = $response->getGraphUser();
         if ($request->has('email')) {
             $userNode['email'] = $request->input('email');
         }
         $stackMember = StackMember::where('stack_id', '=', $stack->id)->where('email', '=', $userNode['email'])->first();
         if (!$stackMember) {
             $validSignupIp = $this->validSignupIp($request, $stack);
             $stackMember = new StackMember();
             $stackMember->email = $userNode['email'];
             $stackMember->referral_token = $this->generateRandomToken($stack->id);
             $stackMember->is_valid_signup_ip = $validSignupIp;
             $stackMember->name = $userNode['name'];
             $stackMember->first_name = $userNode['first_name'];
             $stackMember->last_name = $userNode['last_name'];
             $stackMember->gender = $userNode['gender'];
             $stackMember->locale = $userNode['locale'];
             $stackMember->fb_id = $userNode['id'];
             $stackMember->fb_accesstoken = $accessToken;
             $stackMember->ip = $request->getClientIp();
             $stackMember->stack_id = $stack->id;
             if ($request->session()->get('referral_user')) {
                 $stackMember->referred_by = $request->session()->get('referral_user');
             }
             $stackMember->save();
         } else {
             $stackMember->fb_id = $userNode['id'];
             $stackMember->fb_accesstoken = $accessToken;
             $stackMember->save();
         }
         Event::fire(new StackMemberSignedUp($stackMember));
         return redirect('member/' . $stackMember->referral_token);
     } catch (Facebook\Exceptions\FacebookResponseException $e) {
         // When Graph returns an error
         return redirect()->back()->withInput()->withErrors($e->getMessage());
     } catch (Facebook\Exceptions\FacebookSDKException $e) {
         // When validation fails or other local issues
         return redirect()->back()->withInput()->withErrors($e->getMessage());
     } catch (Exeption $e) {
         return redirect()->back()->withInput()->withErrors($e);
     }
 }