2013-04-05 150 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

相关问题