从我的应用程序中注销(使用 facebook android sdk 4.0 开发)并安装 facebook 原生应用程序
Posted
技术标签:
【中文标题】从我的应用程序中注销(使用 facebook android sdk 4.0 开发)并安装 facebook 原生应用程序【英文标题】:Log out from my app (developed using facebook android sdk 4.0) and installed facebook native app 【发布时间】:2015-04-13 13:35:57 【问题描述】:我使用 Facebook SDK4.0 在我的 android 应用程序中添加了 Facebook 登录和注销功能。
我在从本机 Facebook 应用程序注销时遇到了一个特殊问题。
我的应用程序适用于需要数百名用户登录并安装活动应用程序以分享他们的活动体验的活动。所以,我需要登录和注销功能尽可能流畅。
我正在使用 Facebook 新的 android SDK 4.0 登录、注销功能。 我在活动函数和销毁函数中添加了这段代码:
FacebookSdk.sdkInitialize(this.getApplicationContext());
LoginManager.getInstance().logOut();
我在登录过程中调查了登录成功并完成应用程序安装后,Facebook SDK 会缓存当前用户登录会话用于本机 Facebook 应用程序。当用户从我的应用程序中注销时,用户仍然登录到他的本地 Facebook 应用程序。
这让我的活动应用程序之旅变得非常痛苦和耗时。因为在每个用户从我的应用程序登录和安装过程之后,我必须重新访问本机 Facebook 应用程序,然后需要从本机 Facebook 应用程序手动注销它们。
这种情况对于繁忙的活动应用来说并不是完美的解决方案!
有没有人也经历过类似或任何想法,注销功能如何从原生 Facebook 应用程序和我的应用程序中注销用户?
感谢您的帮助。
【问题讨论】:
【参考方案1】:您不能使用 Android 中的 AccountManager 类来删除 Facebook 帐户吗?
public static void removeAccount(Context context)
AccountManager am = AccountManager.get(context);
Account[] localAccounts = am.getAccounts();
for (int i=0; i<localAccounts.length; i++)
if (localAccounts[i].type.equals("com.facebook.auth.login"))
am.removeAccount(localAccounts[i], null, null);
【讨论】:
我不想在我的应用中包含客户经理。需要 Facebook SDK 的功能来执行注销操作。 Facebook SDK 3 具有Session
类,该类提供称为 closeAndClearTokenInformation()
的方法,您可以调用该方法。但是,在 SDK 4 中已弃用 Session 类。因此,如果您愿意降级,这里是 SDK 3 的代码:Session session = Session.getActiveSession(); if (session != null) session.closeAndClearTokenInformation();
感谢您的意见。我已经知道这一点,并且在以前的版本中也实现了。但我正在寻找 SDK 4.0 的解决方案。看看我的问题标题【参考方案2】:
我认为不可能从您的应用程序中将用户从主 facebook 应用程序中注销。
【讨论】:
是的。我知道。以编程方式从应用程序中注销用户非常重要。耻辱 facebook 没有这个 Facebook...就像你设备上的病毒一旦连接,你永远无法摆脱它以上是关于从我的应用程序中注销(使用 facebook android sdk 4.0 开发)并安装 facebook 原生应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在用户注销时从我的应用程序中删除 facebook 会话 cookie
如何在 iPhone 上从 Facebook 注销(本机/集成)
如何注销 Facebook - 在 Rails 应用程序中使用代码(Ruby on Rails Omniauth)