使用新的PHPSDK(3.X.X)请求许可

使用新的PHPSDK(3.X.X)请求许可,php,facebook,permissions,Php,Facebook,Permissions,如何使用新的PHP SDK请求权限?我不想一直使用graph api解析url。当应用程序打开时,如果用户还没有授予权限,它应该自动请求权限。下面是我如何使用最新的PHP SDK(3.0.1)进行操作的 //使用app info初始化新的facebook类实例(取自数据库) $facebook=新的facebook(数组)( “appId”=>“您的应用程序ID”, “机密”=>“您的应用程序机密” )); //获取用户UID $fb_user_id=$facebook->getUser();

如何使用新的PHP SDK请求权限?我不想一直使用graph api解析url。当应用程序打开时,如果用户还没有授予权限,它应该自动请求权限。

下面是我如何使用最新的PHP SDK(3.0.1)进行操作的

//使用app info初始化新的facebook类实例(取自数据库)
$facebook=新的facebook(数组)(
“appId”=>“您的应用程序ID”,
“机密”=>“您的应用程序机密”
));
//获取用户UID
$fb_user_id=$facebook->getUser();
//获取重定向用户的url
$location=”“$facebook->getLoginUrl(数组('scope'=>'publish_stream,email');
//检查我们是否有有效的用户
if($fb\U用户\U id){
试一试{
//继续,知道您有一个经过身份验证的登录用户。
$fb_user_profile=$facebook->api('/me');
}捕获(FacebookApiException$e){
$fb_user_id=NULL;
//看来我们没有足够的权限
//由于Facebook的错误,我们使用javascript来重定向用户,而不是header()
打印“top.location.href=”.$location.“;”;
//杀死代码,这样在用户授予我们权限之前不会发生其他事情
模具();
}
}否则{
//似乎我们的用户尚未登录,请将其重定向到FB登录页面
打印“top.location.href=”.$location.“;”;
//杀死代码,这样在用户授予我们权限之前不会发生其他事情
模具();
}
//此时,我们有一个已登录的用户,他已向我们的应用程序授予权限
//可以轻松获取基本用户信息
打印“欢迎使用我的应用程序”$fb_用户_档案['name'];

PHP-SDK 3.2.0基于会话的范围登录和使用access\u令牌注销

<?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'];
?>

你这是什么意思?您不想一直使用
$facebook->getLoginUrl()
?最新的PHP SDK不使用
cookie
参数。您可以删除它。谢谢,我想它是从旧版本的PHPSDK中保留下来的
<?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 ?>