1
<?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。在/home/######/public_html/php/fbsdk/src/base_facebook.php第1238行抛出"

无论我抓取这个网站多久,我都很难弄清楚问题是什么。

顺便说一句:(刷新页面解决了这个问题)

我真的需要帮助。谢谢!

4

1 回答 1

0

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

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

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

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

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

顺便说一句:(刷新页面解决了这个问题)

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

于 2012-11-08T09:16:16.860 回答