Facebook PHP SDK不允许登录用户

Facebook PHP SDK不允许登录用户,php,facebook,wordpress,facebook-graph-api,Php,Facebook,Wordpress,Facebook Graph Api,全部,, 我正在使用wordpress并尝试让我的用户登录facebook。在Wordpress的my header.php中,我有以下代码: define('123', '123'); //uses the PHP SDK. Download from https://github.com/facebook/php-sdk require 'facebook.php'; $facebook = new Facebook(array( 'appId' => '123', '

全部,, 我正在使用wordpress并尝试让我的用户登录facebook。在Wordpress的my header.php中,我有以下代码:

define('123', '123');

//uses the PHP SDK.  Download from https://github.com/facebook/php-sdk
require 'facebook.php';

$facebook = new Facebook(array(
  'appId'  => '123',
  'secret' => '12345',
  'cookie' => true,
));

$uid = $facebook->getUser();
if ($uid) {
    try {
        $userInfo = $facebook->api('/' + $uid);
        $qry = "Select user_id, role from event_details where email_address='$userInfo[email]'";
        echo $qry;
        $result = mysql_query($qry);
        $resultrows = mysql_num_rows($result);
        if($resultrows>0){
            $resultset = mysql_fetch_array($result);
            $_SESSION['user_id'] = $resultset['user_id'];
            $_SESSION['role'] = $resultset['role'];
            $target = "http://www.website.com/event_choices";
            header("Location:". $target);
        }
    } catch (FacebookApiException $e) {
        error_log($e);
    }
}else{
    echo "not logged into facebook";
}

if ($uid) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl = $facebook->getLoginUrl(array(
    'next'=>'http://www.website.com/event_choices'
    ));
}
<?php if ($uid): ?>
<?php echo "Welcome, ".$uid['first_name']. ".<br />"; ?>
<a href="<?php echo $logoutUrl; ?>">
  <img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif">
</a>
<?php else: ?>
  <a href="<?php echo $loginUrl; ?>">
    <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif">
  </a>
<?php endif ?>
当我在Wordpress中创建页面时,我有以下代码:

define('123', '123');

//uses the PHP SDK.  Download from https://github.com/facebook/php-sdk
require 'facebook.php';

$facebook = new Facebook(array(
  'appId'  => '123',
  'secret' => '12345',
  'cookie' => true,
));

$uid = $facebook->getUser();
if ($uid) {
    try {
        $userInfo = $facebook->api('/' + $uid);
        $qry = "Select user_id, role from event_details where email_address='$userInfo[email]'";
        echo $qry;
        $result = mysql_query($qry);
        $resultrows = mysql_num_rows($result);
        if($resultrows>0){
            $resultset = mysql_fetch_array($result);
            $_SESSION['user_id'] = $resultset['user_id'];
            $_SESSION['role'] = $resultset['role'];
            $target = "http://www.website.com/event_choices";
            header("Location:". $target);
        }
    } catch (FacebookApiException $e) {
        error_log($e);
    }
}else{
    echo "not logged into facebook";
}

if ($uid) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl = $facebook->getLoginUrl(array(
    'next'=>'http://www.website.com/event_choices'
    ));
}
<?php if ($uid): ?>
<?php echo "Welcome, ".$uid['first_name']. ".<br />"; ?>
<a href="<?php echo $logoutUrl; ?>">
  <img src="http://static.ak.fbcdn.net/rsrc.php/z2Y31/hash/cxrz4k7j.gif">
</a>
<?php else: ?>
  <a href="<?php echo $loginUrl; ?>">
    <img src="http://static.ak.fbcdn.net/rsrc.php/zB6N8/hash/4li2k73z.gif">
  </a>
<?php endif ?>

这将显示登录按钮,但每当我单击该按钮时,什么都不会发生。当我查看源代码时,$loginUrl没有被填充。我做错了什么


谢谢

生成登录URL时没有传递作用域,这是传递所有应用程序权限的地方。看一看:

$loginUrl   = $facebook->getLoginUrl(
    array(
        'scope'         => 'email,offline_access,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown',
        'redirect_uri'  => 'http://www.website.com/event_choices'
    )
);
有关更多信息,请参阅API参考

此外,在与Facebook合作时,有时从FB获得一些输出,以了解可能存在的问题,这一点很重要。您可以这样包装代码:

try {
    $user = $facebook->getUser();
    //you can also put your loginURL generation code here to see if you get an error
} catch(Exception $o){
    print_r($o);
}