我使用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引起的,它的工作原理。鏈接屬性是禁止的還是什麼?
謝謝。我查了一下,並收到了長期存取令牌(持續60天)。 我是否需要將它存儲在我的數據庫的某個地方,或者是現在登錄60天的用戶? – Chris 2013-04-12 15:07:19
根據它說的文檔:「來自此端點的響應將包含長期訪問令牌,這將是與原始令牌不同的字符串,因此如果您要存儲這些令牌,請替換原來的令牌。」這對我來說意味着你可以將它存儲在cookie或其他地方 – TommyBs 2013-04-12 15:12:00
請看看我更新的問題。 – Chris 2013-04-12 15:54:25