Facebook致命错误会话已过期

时间:2012-11-08 02:45:29

标签: php facebook facebook-php-sdk

<?php
require_once"includes/strings.php";
require_once"php/function.php";
require_once"php/config.php";
require_once"php/app.php";

$currentFBuserid = "0";

///////FACEBOOK GET USER INFORMATION
session_start();
// Enter the app id and secret below
define('YOUR_APP_ID', '$fbAppID');
define('YOUR_APP_SECRET', '$fbAppSecret');

require_once"php/fbsdk/src/facebook.php";

$facebook = new Facebook(array(
  'appId'  => $fbAppID,
  'secret' => $fbAppSecret,
));

$userId = $facebook->getUser();
if($userId){
    $userInfo = $facebook->api('/' + $userId);
           }

好的问题很简单,每两个小时一次,我想会话在我的网站上过期,并且出现错误“致命错误:未捕获OAuthException:错误验证访问令牌:会话已在unix时间1352329200过期。

当前的unix时间是1352330589.在第1238行的/home/######/public_html/php/fbsdk/src/base_facebook.php中抛出“

无论我多长时间抓住这个网站,我都无法找出问题所在。

BTW :(刷新页面解决了问题)

我真的需要帮助。 谢谢!

1 个答案:

答案 0 :(得分:0)

  

好的问题很简单,每两个小时一次,我想会话在我的网站上过期,并且出现错误“致命错误:未捕获OAuthException:错误验证访问令牌:会话已在unix时间1352329200过期。

使用客户端流程获取的用户访问令牌将在两小时后过期。

您可以扩展它们,也可以使用服务器端流程 - 两者都会产生一个有效期为60天的令牌。

https://developers.facebook.com/roadmap/offline-access-removal/

(最新版本的PHP SDK有一个名为setExtendedAccessToken的方法,用于扩展短期令牌。)

  

BTW :(刷新页面解决了问题)

如果您使用JS SDK进行登录,那么刷新当然会让它对Facebook进行新的跨域请求,并且会获得一个新的短期访问令牌。