0

首先,我可以使用带有 twitter4j-core jar 版本 2.1.11 的 twitter 按钮登录,并能够检索访问令牌和密码。但是在 twitter 停止 API 版本 1 的功能后,我添加了新的 twitter4j-core jar 版本 3.0.3 和 API 版本 1.1。现在我无法检索访问令牌和访问密钥。

这是我存储访问令牌和访问密码的数据库方法。

 public static void save(Context context, final OAuthConsumer oAuthConsumer) {
    SharedPreference.storeValue(OAuth.OAUTH_TOKEN, oAuthConsumer.getToken(), context);
    SharedPreference.storeValue(OAuth.OAUTH_TOKEN_SECRET, oAuthConsumer.getTokenSecret(), context);
}

我在其中检索存储值的另一种数据库方法:

public static AccessToken retrieveStoredAccessToken(Context context)
{
    String token = SharedPreference.getValueFromStore(OAuth.OAUTH_TOKEN , context);
    String secret = SharedPreference.getValueFromStore(OAuth.OAUTH_TOKEN_SECRET, context);
    return new AccessToken(token, secret);
}

现在,当用户单击登录按钮时,它将重定向到方法 isAuthenticated() 我在其中检索存储的访问令牌和秘密

public static boolean isAuthenticated(Context context) 
{
    try
    {   
        AccessToken accessToken = Database.retrieveStoredAccessToken(context); // String token and secret is received null from databse
        Twitter twitter = new TwitterFactory().getInstance();
        twitter.setOAuthConsumer(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);
        twitter.setOAuthAccessToken(accessToken);
        twitter.getAccountSettings();
        return true;
    }
    catch (TwitterException e)
    {   
        System.out.println("Twitter Authenticated : false");
        return false;
    }
    catch(Exception e)
    {       
        System.out.println("Twitter Authenticated : false");
        return false;
    }

}

访问令牌返回 Null 异常。我可以使用 twitter 登录,但由于访问令牌和访问密钥引发了 null 异常,因此未存储会话。

以下jar文件使用

1)signpost-commonshttp4-1.2.1.1.jar 2)signpost-core-1.2.1.1.jar 3)twitter4j-core-3.0.3.jar

4

1 回答 1

0

最后我想出了我的问题。

只需要改变这些东西:

https://api.twitter.com/oauth/authenticate?force_login=true from http://api.twitter.com/oauth/authenticate
于 2013-06-14T10:11:01.283 回答