我在我的网站上使用 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');
}
}
但我得到一个错误
致命错误:未捕获的 OAuthException:(#1) 创建在第 1254 行的 /facebook/base_facebook.php 中抛出的共享时发生错误
这是由$facebook->api('/'.$facebook->getUser().'/feed', 'POST', $attachment);
当我link
从我的 -attribute中删除时$attachment
,它可以工作。是链接属性被禁止还是什么?