2012-11-08 38 views
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.Facebook的致命錯誤的會話已過期

當前的UNIX時間是1352330589.拋出/home/######/public_html/php/fbsdk/src/base_facebook.php在線1238"

我有一個不可能找出問題所在,無論我多久刮這個網站。

BTW:(刷新頁面來解決問題)

我真的需要幫助。 謝謝!

回答

0

Okay the issue is simple about every two hours I guess the session expires on my site and the error "Fatal error: Uncaught OAuthException: Error validating access token: Session has expired at unix time 1352329200.

使用客戶端流程獲取的用戶訪問令牌在兩個小時後過期。

您既可以擴展它們,也可以使用服務器端流程 - 兩者都會生成有效期爲60天的令牌。

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

(的PHP SDK的最新版本有一個名爲setExtendedAccessToken用於擴展短期令牌的方法。)

BTW:(refreshing the page solves the issue)

如果您使用的是JS SDK做的登錄,那麼刷新當然會讓它向Facebook做一個新的跨域請求,並且會得到一個新的短期訪問令牌。

+0

太棒了!你是否說我不能同時使用JS SDK和PHP SDK,如果我想要一個長時間的令牌?無論哪種方式,我會嘗試告訴你它是否已經生效 –

+0

不,你當然可以一起使用它們 - 但是如果你獲得訪問令牌客戶端(使用JS SDK),它將是短暫的,而且你有如果您需要的話,可以在服務器端進行長期交換。 – CBroe

+0

非常感謝你準備好一個大的複選標記:P –

相關問題