/** * @see OAuth2\IOAuth2GrantExtension::checkGrantExtension */ public function checkGrantExtension(IOAuth2Client $client, array $inputData, array $authHeaders) { if (!isset($inputData['facebook_access_token'])) { return false; } $this->facebookSdk->setDefaultAccessToken($inputData['facebook_access_token']); try { // Try to get the user with the facebook token from Open Graph $fbData = $this->facebookSdk->get('/me?fields=email,id,first_name,last_name,name,name_format'); if (!$fbData instanceof \Facebook\FacebookResponse) { return false; } // Check if a user match in database with the facebook id $user = $this->userManager->findUserBy(['facebookId' => $fbData->getDecodedBody()['id']]); // If none found, try to match email if (null === $user && isset($fbData->getDecodedBody()['email'])) { $user = $this->userManager->findUserBy(['email' => $fbData->getDecodedBody()['email']]); } // If no user found, register a new user and grant token if (null === $user) { // TODO: Create new user return false; } else { // Else, return the access_token for the user // Associate user with facebookId $user->setFacebookId($fbData->getDecodedBody()['id']); $this->userManager->updateUser($user); return array('data' => $user); } } catch (\FacebookApiExceptionion $e) { return false; } }
/** * Instantiate and return the Facebook object * * @return Facebook */ public function fb() { if ($this->facebookApi === null) { $this->facebookApi = new Facebook((array) $this->config->get('fb_config')); if (!empty($this->config->get('fb_token')->long)) { $this->facebookApi->setDefaultAccessToken($this->config->get('fb_token')->long); } } return $this->facebookApi; }
public function publishOnPage(Post $post, $message = null) { $response = new FacebookPostAsPageResponse(); $accessToken = $this->getUserLongAccessToken(); if (!$post->getPublished()) { return $response->setException(new \Exception('flash_batch_facebook_post_not_published')); } if ($accessToken->tokenIsEmpty()) { return $response->setException(new \Exception('flash_batch_facebook_access_token_empty')); } $this->application->setDefaultAccessToken($accessToken->getAccessToken()); try { $getPageAccessToken = $this->application->sendRequest('GET', '/' . $this->pageId, array('fields' => 'access_token'))->getDecodedBody(); $params = array('message' => null !== $message ? $message : '', 'name' => $post->getTitle(), 'caption' => $post->getDescription(), 'link' => $this->router->generate('front_article_view', array('slug' => $post->getSlug()), true)); if (count($post->getImages()) > 0) { $hompage = $this->router->generate('homepage', array(), true); $imgWebPath = $this->assetsHelper->getUrl($post->getPreviewImage()->getWebPath()); $params['picture'] = $hompage . $imgWebPath; } $endPoint = null === $post->getFbId() ? $this->pageId . '/feed' : $post->getFbId(); $postAsPage = $this->application->post('/' . $endPoint, $params, $getPageAccessToken['access_token'])->getDecodedBody(); $response->setId(isset($postAsPage['id']) ? $postAsPage['id'] : $post->getFbId()); } catch (\Exception $e) { return $response->setException($e); } return $response; }
public function cancelEvent($facebook_event_id) { $user = $this->container->get('security.token_storage')->getToken()->getUser(); $user_access_token = $user->getFacebookAccessToken(); if (!$user_access_token) { return json_encode(['message' => 'Not logged in', 'success' => false]); } $this->fb->setDefaultAccessToken($user_access_token); $attendResponse = null; try { $attendResponse = $this->fb->post($facebook_event_id . '/declined'); } catch (FacebookResponseException $ex) { return false; // @TODO: Log stack trace. } $attendResponse = $attendResponse->getGraphNode()->asArray(); if ($attendResponse['success'] === true) { /** * @var FacebookEvent $facebookEvent */ $facebookEvent = $this->container->get('doctrine')->getRepository('NFQKVKScraperBundle:FacebookEvent')->getByFacebookId($facebook_event_id); $this->container->get('doctrine')->getRepository('NFQKVKScraperBundle:UserEvent')->deleteAttendedEvent($user->getId(), $facebookEvent->getEvent()->getId()); } return $attendResponse; }
/** * Create an instance of Facebook session */ private function set_fb_request_session() { $settings = array('app_id' => self::$appId, 'app_secret' => self::$appSecret, 'default_graph_version' => 'v2.5'); $fb = new Facebook\Facebook($settings); $fb->setDefaultAccessToken(self::$fbToken); self::$fbSession = $fb; }
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; }
public function index() { $fb = new Facebook(['app_id' => '178541382481710', 'app_secret' => '00ad5032a61d3ca526c6693f006db028', 'default_graph_version' => 'v2.4']); $fb->setDefaultAccessToken('178541382481710|4K7VTpySNyFIp2gIKlAY3T5pXAc'); $response = $fb->get('/LesGetsOfficiel/feed?fields=id,message,full_picture,link,type&limit=100'); $response = $response->getDecodedBody(); debug($response); die; }
/** * @param LiveBroadcast $liveBroadcast * @param OutputFacebook $outputFacebook * @return null|string * @throws LiveBroadcastOutputException */ public function createFacebookLiveVideo(LiveBroadcast $liveBroadcast, OutputFacebook $outputFacebook) { if (!$this->facebookSDK) { $this->initFacebook(); } try { $params = array('title' => $liveBroadcast->getName(), 'description' => $liveBroadcast->getDescription()); $this->facebookSDK->setDefaultAccessToken($outputFacebook->getAccessToken()); $response = $this->facebookSDK->post($outputFacebook->getEntityId() . '/live_videos', $params); } catch (FacebookResponseException $ex) { throw new LiveBroadcastOutputException('Facebook exception: ' . $ex->getMessage()); } catch (FacebookSDKException $ex) { throw new LiveBroadcastOutputException('Facebook SDK exception: ' . $ex->getMessage()); } $body = $response->getDecodedBody(); if (array_key_exists('stream_url', $body)) { return $body['stream_url']; } return null; }
/** * @param $userId * * @return FacebookAdsAuthContainer */ public function getAuthContainer($userId) { $oauthTokens = $this->MediaPlatformUser->getOauthTokens($userId); if (empty($oauthTokens)) { throw new NotFoundException('Could not find the oauth tokens for MediaPlatformUser #' . $userId . '.'); } $facebookAuthContainer = new FacebookAdsAuthContainer(); $this->_facebook->setDefaultAccessToken($oauthTokens['OauthToken']['access_token']); $facebookAuthContainer->facebookSdk = $this->_facebook; $facebookAuthContainer->facebookAds = Api::init(Configure::read('FacebookAds.app_id'), Configure::read('FacebookAds.app_secret'), $oauthTokens['OauthToken']['access_token']); $this->_sendEventIfTokenExpiresInTwoWeeks($userId, $oauthTokens['OauthToken']['token_expires']); return $facebookAuthContainer; }
/** * 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; }
private static function getFacebookFriends($user, $token) { $ids = array(); $fbConfig['default_access_token'] = $token; $fb = new Facebook(Config::get('services.facebook')); $fb->setDefaultAccessToken($token); $response = $fb->get('/me/friends', $token)->getDecodedBody()['data']; $friendsList = $response; foreach ($friendsList as $friend) { $userAuth = UserAuthToken::where('service', 'facebook')->where('service_id', $friend['id'])->first(); if ($userAuth) { $user_id = $userAuth->user->id; $ids[$user_id] = $userAuth->service_id; } } //ids: array(user_id => facebook_id) return $ids; }
/** * @return GraphEdge */ public function getFeed() { $sinceDate = new \DateTime($this->startingDate); $request = new FacebookRequest($this->facebookApp, $this->facebookAccessToken, 'GET', sprintf('/%d/posts', $this->facebookPageId), ['fields' => 'message, created_time, status_type, attachments, place', 'since' => $sinceDate->getTimestamp()]); $fb = new Facebook(["app_id" => $this->facebookApp->getId(), "app_secret" => $this->facebookApp->getSecret(), "default_graph_version" => 'v2.5']); $fb->setDefaultAccessToken($this->facebookAccessToken); try { $response = $fb->getClient()->sendRequest($request); } 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; } $timelineObject = $this->timelineObjectFiller($response->getGraphEdge()); return $timelineObject; }
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'); } }
/** * This implementation follow instruction * * @see https://developers.facebook.com/docs/php/gettingstarted/5.0.0 * * @return AccessToken */ public function getTokenFromRedirect() { $token = null; try { $token = $this->getLoginHelper()->getAccessToken($this->getRedirectUrl()); // exchange a long-live access token $oAuth2Client = $this->facebook->getOAuth2Client(); $token = $oAuth2Client->getLongLivedAccessToken($token); } catch (FacebookResponseException $e) { throw new \RuntimeException('Graph returned an error: ' . $e->getMessage()); } catch (FacebookSDKException $e) { // When validation fails or other local issues throw new \RuntimeException('Facebook SDK returned an error: ' . $e->getMessage()); } if (!$token instanceof AccessToken) { throw new \RuntimeException('Could not authorize request on Facebook'); } // store access token $_SESSION[self::FACEBOOK_SESSION_KEY] = $token->__toString(); $this->facebook->setDefaultAccessToken($token); return $token; }
/** * This method save or log in a user when is using FacebookAccount * @param $request * @return \Symfony\Component\HttpFoundation\Response */ private function loginFacebookUser($request) { //load the facebook SDK object $fb = new Facebook(['app_id' => env('FB_API_ID'), 'app_secret' => env('FB_API_SECRET'), 'default_graph_version' => 'v2.2']); //set the token that whe receive from the request APP $fb->setDefaultAccessToken($request->input('token')); //Get the graph query try { $response = $fb->get('/me?fields=id,name,email'); $fbUser = $response->getGraphUser(); } catch (FacebookResponseException $e) { return response()->json($e->getMessage(), 401); } catch (FacebookSDKException $e) { return response()->json($e->getMessage(), 400); } //instantiate the new user $user = new User(); //find by facebook_id and get the mongodb collection for users $users = $user->getCollection(); $result = $users->findOne(['facebook_id' => $fbUser['id']]); if ($result) { var_dump('log in process by idfb'); die; } //find by email $result = $users->findOne(['email' => $fbUser['email']]); if ($result) { var_dump('log in process by email'); die; } //if not found then fill data and save account $user->fill($request); if (!$user->save()) { return response()->json('Error, the user was not created', 400); } return response()->json('success', 200); }
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); } }
/** * @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 testAnAccessTokenCanBeSetAsAnAccessTokenEntity() { $fb = new Facebook($this->config); $fb->setDefaultAccessToken(new AccessToken('bar_token')); $accessToken = $fb->getDefaultAccessToken(); $this->assertInstanceOf('Facebook\\Authentication\\AccessToken', $accessToken); $this->assertEquals('bar_token', (string) $accessToken); }
<?php require_once __DIR__ . '/vendor/autoload.php'; use Facebook\Facebook; session_start(); $fb = new Facebook(['app_id' => '137232439715277', 'app_secret' => '8ff4bfcdf06ae146809cba0bb5c91080', 'default_graph_version' => 'v2.3']); $loginHelper = $fb->getRedirectLoginHelper(); $token = $loginHelper->getAccessToken(); if ($token) { $_SESSION['fb_token'] = $token->getValue(); } $fb->setDefaultAccessToken($_SESSION['fb_token']); $resp = $fb->get('me/albums'); $details = $resp->getDecodedBody(); dump($details);
/** * Init Facebook super-class object with applications settings */ public function init() { parent::init(); $this->fb = new \Facebook\Facebook(array('app_id' => $this->app_id, 'app_secret' => $this->app_secret)); $this->fb->setDefaultAccessToken($this->fb->getApp()->getAccessToken()); }
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>'; } }
$notifications += $assigns->count; } else { //echo "<td>0</td>"; } if ($notifications == 0) { //echo "<td>No notifications found</td>"; } else { // Check if there are notifications to send if ($user->facebookid != null && $notifications != 0) { if ($notifications == 1) { $template = "Tienes {$notifications} notificación de Webcursos."; } else { $template = "Tienes {$notifications} notificaciones de Webcursos."; } $data = array("link" => "", "message" => "", "template" => $template); $fb->setDefaultAccessToken($appid . '|' . $secretid); // Handles when the notifier throws an exception (couldn't send the notification) try { $response = $fb->post('/' . $user->facebookid . '/notifications', $data); $return = $response->getDecodedBody(); echo "Send " . $notifications . " notification to " . $user->name . " - " . $user->email . " | \n"; } catch (Exception $e) { $exception = $e->getMessage(); echo "Exception found: {$exception} \n"; // If the user hasn't installed the app, update it's record to status = 0 if (strpos($exception, "not installed") !== FALSE) { $updatequery = "UPDATE {facebook_user} \n\t\t\t\t\t\t\t\tSET status = ? \n\t\t\t\t\t\t\t\tWHERE moodleid = ?"; $updateparams = array(0, $user->id); if ($DB->execute($updatequery, $updateparams)) { echo "Record updated, set status to 0. \n"; } else {
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'); } } }
/** * @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!'); }