Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
don';我不理解facebook connect在PHP中丢失会话和其他奇怪的会话问题_Php_Facebook - Fatal编程技术网

don';我不理解facebook connect在PHP中丢失会话和其他奇怪的会话问题

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,请执行以下操作:

$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吗?