我在这个问题上遇到过类似的线程,但还没有找到解决方案。我已将我的代码分解为最简单的形式,但仍在努力让用户登录。登录/接受权限后,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 似乎永远不会成为真的。