当我访问 index.php 时,一切正常,我看到 acces_token 出现在会话变量中。
但是,当我单击链接转到新页面并单击(在新页面上)返回 index.php 的链接时,access_token 会更改为更短的令牌,从我的 appId 开始.
(编辑:我刚刚发现这个较短的令牌是这样的:appid|appsecret)
我尝试链接到 index.php 的精确副本,并且发生了同样的事情。好像没有创建新的 facebook 实例,或者其他什么......为什么没有创建新的 access_token?
下面是我的代码。你会注意到我没有让用户登录我的应用程序。这是因为这部分是通过 Javascript SDK 在另一个页面上完成的。
我一直在寻找几个小时......提前感谢您的建议。
索引.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); ?>
?>
好的.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>';
}
?>
配置文件
<?php
session_start();
//We log to the DataBase
mysql_connect('...', '...', '...');
mysql_select_db('...');
?>