当我访问index.php时,一切正常,我看到acces_token出现在会话变量中。
然而,当我点击一个链接转到一个新页面,然后我点击(在新页面上)一个链接,让我回到index.php,access_token被更改为一个更短的令牌,开始用我的appId。
(编辑:我刚刚发现这个更短的标记是这样的:appid | appsecret)
我已尝试链接到index.php的精确副本,同样的事情发生了。这就像是没有创建新的facebook实例,或者是什么......为什么没有创建新的access_token?
以下是我的代码。您会注意到我没有在我的应用程序中登录用户。那是因为这部分是通过Javascript SDK在另一个页面上完成的。
我一直在找几个小时......提前感谢您的建议。
的index.php
<?php
include "config.php";
require "ok.php";
?>
<br/><br/>
<a href="link.php">Link.</a>
<br/><br/>
<?php
$user = $facebook->getUser();
$userInfo = $facebook->api("/$user");
?>
<?php d($user); ?>
<strong>PHP Session</strong>
<?php d($_SESSION); ?>
?>
ok.php
<?php
$fbconfig['appid' ] = "###";
$fbconfig['secret'] = "###";
$user = null;
try{
include_once "facebook.php";
}
catch(Exception $o){
echo '<pre>';
print_r($o);
echo '</pre>';
}
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
function d($d){
echo '<pre>';
print_r($d);
echo '</pre>';
}
?>
的config.php
<?php
session_start();
//We log to the DataBase
mysql_connect('...', '...', '...');
mysql_select_db('...');
?>