2013-04-05 103 views
0

我使用Facebook登錄我的網站上我的Web應用程序(使用Facebook登錄)登錄我出去

window.fbAsyncInit = function() { 

    // init the FB JS SDK 
    FB.init({ 
     appId  : 'XXX', // App ID from the App Dashboard 
     channelUrl : 'XXX/channel.php', // Channel File for x-domain communication 
     cookie  : true, // set sessions cookies to allow your server to access the session? 
     frictionlessRequests: true 
    }); 

}; 

的問題是,我得到我的網站上每10-20分鐘〜註銷。該網站比重新加載,我再次登錄。我認爲cookie會以某種方式被刪除。

有沒有辦法讓cookie長期存在?

我的登錄看起來像這樣:

FB.login(function(response) {}, {scope:'publish_actions'}); 

更新:

我的劇本的這部分被稱爲當用戶登錄在第一時間:

// triggers on first login 
if (isset($_GET['first_login'])) { 
    if ($me) { 
     $facebook->setExtendedAccessToken(); 
     $friends = $facebook->api('/me/friends'); 
     $friends = $friends['data']; 
     if (!empty($friends)) { 
      // sql 

     } 
     $permissions = $facebook->api("/me/permissions"); 

     if(array_key_exists('publish_actions', $permissions['data'][0])) { 
      $attachment = array(
        'message' => 'XXX', 
        'name' => 'XXX - App', 
        'link' => 'XXX', 
        'description' => 'XXX', 
        'picture'=> 'XXX', 
        'access_token' => $facebook->getAccessToken() 
      ); 
      $facebook->api('/'.$facebook->getUser().'/feed', 'POST', $attachment); 

      // sql 
     } 
     header('Location: http:/xxx'); 
    } 
} 

但我出現錯誤

Fatal error: Uncaught OAuthException: (#1) An error occured while creating the share thrown in /facebook/base_facebook.php on line 1254

這是由$facebook->api('/'.$facebook->getUser().'/feed', 'POST', $attachment);

當我從$attachment刪除link -attribute引起的,它的工作原理。鏈接屬性是禁止的還是什麼?

回答

1

你應該考慮擴大Facebook的訪問令牌

https://developers.facebook.com/docs/howtos/login/extending-tokens/

然而,這將使用app祕密,因此不應該做的JavaScript,但在服務器端語言以及(可能通過你的代碼合併php-sdk)

+0

謝謝。我查了一下,並收到了長期存取令牌(持續60天)。 我是否需要將它存儲在我的數據庫的某個地方,或者是現在登錄60天的用戶? – Chris 2013-04-12 15:07:19

+0

根據它說的文檔:「來自此端點的響應將包含長期訪問令牌,這將是與原始令牌不同的字符串,因此如果您要存儲這些令牌,請替換原來的令牌。」這對我來說意味着你可以將它存儲在cookie或其他地方 – TommyBs 2013-04-12 15:12:00

+0

請看看我更新的問題。 – Chris 2013-04-12 15:54:25

相關問題