Как я могу запрашивать разрешения с помощью нового PHP SDK? Я не хочу использовать график api и анализировать URL-адрес все время. Когда приложение открывается, оно должно автоматически запрашивать разрешения, если пользователь еще не предоставил его.
Вот как я делаю это с последним PHP SDK (3.0.1)
// init new facebook class instance with app info (taken from the DB) $facebook = new Facebook(array( 'appId' => 'YOUR APP ID', 'secret' => 'YOUR APP SECRET' )); // get user UID $fb_user_id = $facebook->getUser(); // get the url where to redirect the user $location = "". $facebook->getLoginUrl(array('scope' => 'publish_stream, email')); // check if we have valid user if ($fb_user_id) { try { // Proceed knowing you have a logged in user who's authenticated. $fb_user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { $fb_user_id = NULL; // seems we don't have enough permissions // we use javascript to redirect user instead of header() due to Facebook bug print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>'; // kill the code so nothing else will happen before user gives us permissions die(); } } else { // seems our user hasn't logged in, redirect him to a FB login page print '<script language="javascript" type="text/javascript"> top.location.href="'. $location .'"; </script>'; // kill the code so nothing else will happen before user gives us permissions die(); } // at this point we have an logged in user who has given permissions to our APP // basic user info can be fetched easily print "Welcome to my app". $fb_user_profile['name'];
Вход на основе сеанса с областью действия и Выход из системы с помощью access_token для PHP-SDK 3.2.0 .
<?php require './src/facebook.php'; $facebook = new Facebook(array( 'appId' => '135669679827333', 'secret' => 'xxxxxxxxxxxxxxxxxxxxxx', )); $user = $facebook->getUser(); if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { $user = null; } } if ($user) { $params = array(access_token => ''.$access_token.''); $logoutUrl = $facebook->getLogoutUrl($params); } else { $params = array( scope => 'read_stream,publish_stream,publish_actions,read_friendlists', //redirect_uri => $url ); $loginUrl = $facebook->getLoginUrl($params); }; $access_token = $_SESSION['fb_135669679827333_access_token']; ?>
,
<?php if($_SESSION['fb_135669679827333_access_token']): ?> <a href="<?php echo $logoutUrl; ?>&access_token=<?php echo $access_token; ?>" target="_parent">Login & Connect</a> <?php else: ?> <a href="<?php echo $loginUrl; ?>" target="_parent">Login & Connect</a> <?php endif ?>