应用程序关闭后Facebook会话被破坏

时间:2013-06-27 10:32:04

标签: android facebook-graph-api

我已将Facebook与我的Android应用程序集成。它运行良好,但当我关闭应用程序时,会话被销毁,我必须再次登录。

我想保持登录状态直到用户点击退出按钮?我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

此解决方案的关键和问题的原因可能在使用的访问令牌中找到。我的猜测是你目前正在使用短访问令牌。

如果您要使用长期访问令牌,请参阅https://developers.facebook.com/docs/facebook-login/access-tokens/,并以持久的方式存储它,问题将得到解决。由于您使用的是Android,我会将其存储在SQLite中,并在应用程序启动/恢复时进行检索。

来自Facebook开发者网站:

  

到期和延长代币

     

某些访问令牌的有效期有限,约为一到两个小时。为了在到期时间之后继续使用这些令牌,需要延长它们。

     

使用适用于Android和iOS的Facebook SDK,使用服务器端登录流程的桌面应用或应用程序的应用程序会自动生成长期存在的用户访问令牌。每次触发登录流时,此长期令牌都会刷新并扩展。但是,实现自己的客户端流程的应用程序必须实现一些服务器端代码,以使用Graph API端点手动扩展令牌:

所以如果我是你,我会尝试生成相关类型的长期访问令牌,以持久的方式存储它(例如在数据库中)并在应用程序启动或恢复时使用它。

此致 纳斯

答案 1 :(得分:2)

正如@ Jonas karlsson所说,我想补充一点。

  • 如果您愿意,应用程序不应一次又一次地请求登录,当应用程序启动时,您应该使用持久存储。将accessToken保存到SharedPreference storage。因为将它保存在数据库中并不是一个好主意。如果您的应用程序不需要使用数据库,那么它没有理由创建数据库只是为了存储一个值。使用保存的访问令牌来验证会话,它将适合您。

这可以帮助你......干杯......