从PHP管理员以外的帐户访问时,Facebook PHP Web应用程序无法正常工作

时间:2014-06-06 12:09:24

标签: php facebook facebook-fql facebook-php-sdk

我有一个非常简单的PHP应用程序,用于检索用户和用户。使用FQL的朋友RSVPd事件。它使用最新的PHP SKD。当我登录并作为创建应用程序的帐户进行身份验证时,代码可以正常运行,但如果我已登录并以其他人身份进行身份验证,则会失败,并显示“未知错误”。

这是我的代码的登录部分

$config = array();
$config['appId'] = $validId;
$config['secret'] = $validSecret;

$facebook = new Facebook($config);

$uid = $facebook->getUser();

    // get the url where to redirect the user
$location = "". $facebook->getLoginUrl(array('scope' => 'user_events, friends_events'));

// check if we have valid user
if ($uid) {
    try {
        $fb_user_profile = $facebook->api('/me');   

    } catch (FacebookApiException $e) {
        $fb_user_id = NULL;
        // seems we don't have enough permissions
        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

    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();
}

print "Authenticated ". $fb_user_profile['name']." <a href='logout.php'>Logout</a><br>";

这是我的代码的FQL部分

$param  =   array(
  'method'    => 'fql.query',
  'query'     => $validFqlQuery,
  'callback'  => '',
  'access_token' => $facebook->getAccessToken()
 );

echo "<br>Working...";

 $fqlResult   =   $facebook->api($param); 

print_r($fqlResult);

1 个答案:

答案 0 :(得分:1)

  

您的应用需要在Facebook上线前进行审核   其他用户登录。

如果您的应用请求这三个基本权限,则无需通过Login Review

  • public_profile
  • user_friends
  • 电子邮件

要向应用的用户询问任何其他权限,您需要提交以供审核。

但是,为了帮助您制作Facebook登录体验,您的应用 开发者将能够查看和授予任何权限,而无需通过Facebook审核。

  

注意:您应用的“角色”标签中列出的人员可以访问   扩展权限而不经过审核(例如   publish_actions或manage_pages)。例如,如果您使用Facebook   Wordpress插件将您的博客帖子发布到您的Facebook页面   或者个人资料,只要你的所有内容都不需要提交审核   发布商列在您应用的角色标签中。