don';我不理解facebook connect在PHP中丢失会话和其他奇怪的会话问题
真的很简单吗?要连接到Facebook,请执行以下操作:don';我不理解facebook connect在PHP中丢失会话和其他奇怪的会话问题,php,facebook,Php,Facebook,真的很简单吗?要连接到Facebook,请执行以下操作: $facebook = new Facebook(array( 'appId' => 'YOUR_APP_ID', 'secret' => 'YOUR_APP_SECRET', )); 然后你就可以做对了 $fbSession = $facebook->getSession(); 但是它有时是无效的,有时是成功的。真的很想弄明白这里发生了什么 然后还有另一个问题,如果我确实得到了它的有效性,
$facebook = new Facebook(array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
));
然后你就可以做对了
$fbSession = $facebook->getSession();
但是它有时是无效的,有时是成功的。真的很想弄明白这里发生了什么
然后还有另一个问题,如果我确实得到了它的有效性,有时我会得到这样的错误:“会话密钥无效或不再有效”,当我尝试使用fbSession中的access_令牌时
另一方面,我正在交替使用2个facebook帐户,用于开发和测试目的,不确定交替使用它们是否会让我毛骨悚然。这在FB应用程序集成上发生在我身上,我使用的是IFRAME
有人能详细解释一下这里到底发生了什么吗?这种行为是不可预测的,我很难排除故障并理解问题。仅仅因为你有新的Facebook。。。并不意味着您可以调用getSession并期望返回会话。必须将$\u请求或$\u COOKIE设置为getSession用来确定返回的内容。如果其中任何一个设置了会话信息,并且它不是明显无效的,则将返回一个有效的会话 getSession中从未发出网络请求,因此不能保证返回仍然有效的会话。它保证返回客户端仍然认为有效的会话(如果可用)。只有当你尝试使用它时,你才会发现它是无效的。因此出现“会话密钥无效”错误 一个简单的例子是,如果您使用两个浏览器登录一个帐户,然后在其中一个浏览器上注销,那么实际上您在两个浏览器上都已注销,但另一个浏览器在您尝试发出请求之前并不知道。因此,在后一种浏览器上,将返回看似有效的会话,但在尝试发出请求时将失败
另外,我相信您使用的是一个过时的php sdk版本。仅仅因为您使用了新的Facebook。。。并不意味着您可以调用getSession并期望返回会话。必须将$\u请求或$\u COOKIE设置为getSession用来确定返回的内容。如果其中任何一个设置了会话信息,并且它不是明显无效的,则将返回一个有效的会话 getSession中从未发出网络请求,因此不能保证返回仍然有效的会话。它保证返回客户端仍然认为有效的会话(如果可用)。只有当你尝试使用它时,你才会发现它是无效的。因此出现“会话密钥无效”错误 一个简单的例子是,如果您使用两个浏览器登录一个帐户,然后在其中一个浏览器上注销,那么实际上您在两个浏览器上都已注销,但另一个浏览器在您尝试发出请求之前并不知道。因此,在后一种浏览器上,将返回看似有效的会话,但在尝试发出请求时将失败
另外,我相信您使用的是过时的php sdk版本。尝试在一个浏览器(例如ff)中使用一个帐户,在另一个浏览器(例如chrome)中使用另一个帐户。在这种情况下,您不会遇到任何问题。您正在运行哪个版本?是否为3.0.1?尝试在一个浏览器(例如ff)中使用一个帐户,在另一个浏览器(例如chrome)中使用另一个帐户。在这种情况下,您不会遇到任何问题。您正在运行哪个版本?是3.0.1吗?