0

我在这个问题上遇到过类似的线程,但还没有找到解决方案。我已将我的代码分解为最简单的形式,但仍在努力让用户登录。登录/接受权限后,redirect_uri 未正确重定向(在 url 栏中返回“状态”消息)。

<?php 
session_start();
require_once('sdk/src/facebook.php');
require_once('AppInfo.php');


$config = array(
    'appId' => '#####',
    'secret' => '########',
    'cookie' => false
);
$fb = new Facebook($config);

$user = $fb->getUser();
?>
<html> 
 <head> 
  <title>Hello Facebook</title> 
 </head> 
 <body>
<?php
if (!$user) { 
    $params = array(
        'scope' => 'read_stream',
        'redirect_uri' => 'http://localhost:8000/'
        );

        echo '<a href="'. $fb->getLoginUrl($params).'">Login</a>'; 
}
else { 
?>

<p> Hello World! </p>
<?php echo 'hello world!';
        echo 'value of user: '. $user;
        $params = array( 'next' => 'http://localhost:8000'
                        );
        echo '<a href="'.$fb->getLogoutUrl().'">Logout</a>'; 
?>
 </body> 
</html>

开发人员中站点 url 的设置是相同的 (http://localhost:8000/)。沙盒模式被禁用。AppId 和 AppSecret 绝对正确。已经在 chrome、firefox、IE 和几个 FB accs 中尝试过。$user 似乎永远不会成为真的。

4

1 回答 1

0

您使用的是最新版本的Facebook PHP SDK吗?有几个版本可供使用,其中许多是 v2。确保您的项目中有 v3 下载。

为确保您的应用在 Facebook 上正确配置,请使用Facebook gitHub 中的example.php对其进行测试。

于 2012-12-16T23:36:46.267 回答