如何使用适用于 Android 的 Fabric Sdk 从 Twitter 注销

Posted

技术标签:

【中文标题】如何使用适用于 Android 的 Fabric Sdk 从 Twitter 注销【英文标题】:How to logout from twitter using Fabric Sdk for android 【发布时间】:2015-06-26 22:19:15 【问题描述】:

我用过

Twitter.getSessionManager().clearActiveSession();

这不起作用,下次我使用 twitter 登录时,它会使用浏览器打开对话框,进行先前的登录,然后询问“允许应用程序获取您的数据吗?”,但不询问用户名和密码。任何我们将不胜感激。

【问题讨论】:

尝试删除应用程序缓存目录并使用Browser.clearHistory(getContentResolver());删除浏览器数据,仍然是同样的问题 【参考方案1】:

我终于找到了解决这种情况的方法。

无意中在 Twitter SDK Kit for android 中找到了一个方法

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
Twitter.getSessionManager().clearActiveSession();
Twitter.logOut();

这个很简单,找了半个小时左右。

适用于 3.0 及以上版本

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
TwitterCore.getInstance().getSessionManager().clearActiveSession()

【讨论】:

知道如何为 ios 目标 c 执行此操作吗? 我在任何地方都找不到任何对此的参考。我想知道该方法是否是异步的,或者它实际上是做什么的。织物记录不充分:( CookieSyncManager 现已弃用。 CookieManager.flush 是一种可能的替代方案。 'android.webkit.CookieSyncManager' 已弃用。 @moyheen 你能展示一下如何使用 CookieManager.flush 的示例 sn-p 吗? @DroidWormNarendra 如果您仍然需要帮助,您可以在下面查看我的答案。【参考方案2】:

现在 CookieSyncManager 已被弃用,我这样做:

public void logoutTwitter() 
        TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession();
        if (twitterSession != null) 
            ClearCookies(getApplicationContext());
            Twitter.getSessionManager().clearActiveSession();
            Twitter.logOut();
        


public static void ClearCookies(Context context) 
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) 
            CookieManager.getInstance().removeAllCookies(null);
            CookieManager.getInstance().flush();
         else 
            CookieSyncManager cookieSyncMngr=CookieSyncManager.createInstance(context);
            cookieSyncMngr.startSync();
            CookieManager cookieManager=CookieManager.getInstance();
            cookieManager.removeAllCookie();
            cookieManager.removeSessionCookie();
            cookieSyncMngr.stopSync();
            cookieSyncMngr.sync();
        
    

【讨论】:

【参考方案3】:

上一个可行的解决方案:

public static void logoutTwitter() 
    TwitterSession twitterSession = TwitterCore.getInstance().getSessionManager().getActiveSession();
    if (twitterSession != null) 
        clearTwitterCookies(mAppContext);
        Twitter.getSessionManager().clearActiveSession();
        Twitter.logOut();
    


public static void clearTwitterCookies(Context context) 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) 
        CookieManager.getInstance().removeAllCookies(null);
        CookieManager.getInstance().flush();

     else 
        CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(context);
        cookieSyncMngr.startSync();
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.removeAllCookie();
        cookieManager.removeSessionCookie();
        cookieSyncMngr.stopSync();
        cookieSyncMngr.sync();
    

【讨论】:

很抱歉,但这对我不起作用。我总是让最后一个用户登录。我正在使用最新版本。【参考方案4】:

以上方法已绝迹。

// twitter log out
TwitterCore.getInstance().getSessionManager().clearActiveSession();

【讨论】:

【参考方案5】:

您现在可以使用:

Digits.logout();

【讨论】:

【参考方案6】:
TwitterCore.getInstance().getSessionManager().clearActiveSession();

这个是logout使用Twitter Auth登录时的方法

【讨论】:

【参考方案7】:

退出当前用户只需调用

mTwitter.shutdown();

【讨论】:

以上是关于如何使用适用于 Android 的 Fabric Sdk 从 Twitter 注销的主要内容,如果未能解决你的问题,请参考以下文章

如何从Mac从android studio中的fabric注销? [复制]

开始使用 Fabric 和 Twitter 工具包时遇到问题

Fabric1.4.1视频教程即将推出

Service Fabric Actor 备份适用于 1 个参与者,而其他所有参与者都失败

如何使用适用于 Android 的 Universal Image Loader 加载缩略图?

如何使用适用于 Android 的 Push sharp 库一次发送多个推送通知?