Twitter4j,我如何注销?

Posted

技术标签:

【中文标题】Twitter4j,我如何注销?【英文标题】:Twitter4j, how do i logout? 【发布时间】:2012-06-18 06:53:40 【问题描述】:

我可以使用此 Twitter 登录和发帖,但我不知道如何退出。

我只是假装我已经通过添加退出了

CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.removeSessionCookie();

private boolean mCanTweet = false;

我尝试使用教程中的这个网址注销,但它不起作用。

public static final String TWITTER_LOGOUT_URL = "https://api.twitter.com/logout";

有人知道如何使用 Twitter4j 进行“实际”注销吗?

这是我的项目

http://dl.dropbox.com/u/12439052/***/TwitterCon2.zip

【问题讨论】:

【参考方案1】:

Twitter4J 根本不需要登录,它对 Twitter API 执行无状态请求。 所以你也不需要注销。 参考:https://groups.google.com/forum/?fromgroups#!topic/twitter4j/WVdyLVluJpw

【讨论】:

【参考方案2】:

我的 twitter4j 项目遇到了同样的问题。我通过使用此代码解决了这个问题

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

mTwitter.setOAuthAccessToken(null);
mTwitter.shutdown();

在注销方法中,在重新加载身份验证活动之前。

【讨论】:

传递 null 原因:java.lang.IllegalStateException:未提供 OAuth 使用者密钥/秘密组合 @ılǝ 在传递 null 之前使用这个 mTwitter.setOAuthConsumer(Constants.CONSUMER_KEY, Constants.CONSUMER_SECRET);【参考方案3】:

即使twitter4j是无状态的api,也可以使用以下方法清除凭证

    private void clearCredentials() 
    final Editor edit = prefs.edit();
    edit.remove(OAuth.OAUTH_TOKEN);
    edit.remove(OAuth.OAUTH_TOKEN_SECRET);
    edit.commit();
    TwitterFactory().getInstance().shutdown();

【讨论】:

【参考方案4】:

从 twitter 注销的概念只是删除登录信息,然后您就退出了。因为当你在你的应用中发推文或用推特做某事时,它需要令牌等,所以你只需要删除它们。我的 android 应用程序也面临同样的问题,所以在谷歌搜索后,我找到了简单的解决方案。即删除信息。所以我清除了我的

SharedPrefferences

完成了!

【讨论】:

【参考方案5】:

来自 Twitter4J 的作者 Yusuke Yamamoto:“Twitter4J 由 API 使用 Basic auth 标头以无状态方式进行身份验证。 它完全是无状态的,不需要注销。”

https://groups.google.com/forum/?fromgroups=#!topic/twitter4j/WVdyLVluJpw

【讨论】:

【参考方案6】:
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeSessionCookie();
TwitterSession.resetAccessToken();
Twitter_Handler.twitterObj.shutdown();

这里将公共静态变量设置为处理程序中的 twitterObj 和 TwitterSession 文件中的 resetAccessToken。

【讨论】:

【参考方案7】:

最简单的方法是清除cookie。

在 webview 类的 onCreate 中编写以下一行代码。

android.webkit.CookieManager.getInstance().removeAllCookie();

希望对你有帮助。

【讨论】:

以上是关于Twitter4j,我如何注销?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 twitter4j 中将 twitter ID 转换为用户名?或者我可以使用 id 来获取用户简介吗?

过滤 twitter4j 流

使用twitter4j库的Twitter Android登录错误

Twitter4J + Android:身份验证挑战为空异常

是否有任何选项可以使用 twitter4j 获得超过 10 个 twitter 热门话题?

使用 oauth 和 twitter4j 集成 Android Twitter