0

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

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

4

2 回答 2

2

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

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

来自 Facebook 开发者网站:

到期和延长令牌

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

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

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

问候,乔纳斯

于 2013-06-27T11:51:37.557 回答
2

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

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

愿这能帮助你……干杯……

于 2013-06-27T12:05:07.690 回答