Подтвердить что ты не робот

Запрос разрешения с использованием нового PHP SDK (3.X.X)

Как я могу запрашивать разрешения с помощью нового PHP SDK? Я не хочу использовать график api и анализировать URL-адрес все время. Когда приложение открывается, оно должно автоматически запрашивать разрешения, если пользователь еще не предоставил его.

4b9b3361

Ответ 1

Вот как я делаю это с последним 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 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'];

Ответ 2

Вход на основе сеанса с областью действия и выводом с помощью 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 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 ?>