当应用程序重新打开时,如何使用存储的验证程序,令牌和机密获得授权?

时间:2014-09-11 07:15:58

标签: android twitter4j

我在我的Android应用程序中使用twitter4j。我可以获得oauth_verifier并获取令牌和秘密(使用accessToken.getToken()和accessToken.getTokenSecret())。我存储了这些价值。

但是,当应用再次打开时,我不知道如何使用此值。我发现了类似的内容。

accessToken = this.twitter.getOAuthAccessToken(requestToken,verifier);

但是如何创建requestToken?

1 个答案:

答案 0 :(得分:1)

当您获得令牌并且令牌密码将其保存在您的应用中时,例如使用SharedPreference

AccessToken accessToken = twitter.getOAuthAccessToken(oathVerifier);
SharedPreferences pref= getSharedPreferences("social_pref",Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("token",accessToken.getToken());
editor.putString("token_secret",accessToken.getTokenSecret());
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.GINGERBREAD) {
editor.apply();
}else{
editor.commit();
}

现在您可以轻松了解是否存在已存储的令牌和令牌密钥

public boolean doIhaveTokenAndTokenSecret(Context context){
 SharedPreferences pref= getSharedPreferences("social_pref",Context.MODE_PRIVATE);
return pref.getString("token",null)!=null && pref.getString("token_secret",null)!=null ;

}

如果存储它们,请将它们提供给ConfigurationBuilder对象

ConfigurationBuilder builder = new ConfigurationBuilder();
            builder.setOAuthConsumerKey(Constants.TWITTER_CONSUMER_KEY);
            builder.setOAuthConsumerSecret(Constants.TWITTER_CONSUMER_SECRET);
if(doIhaveTokenAndTokenSecret(getApplicationContext()){
            SharedPreferences mSharePref = context.getSharedPreferences(Constants.SOCIAL_PREF_NAME, Context.MODE_PRIVATE);

                builder.setOAuthAccessToken(mSharePref.getString("token",null));
                builder.setOAuthAccessTokenSecret(mSharePref.getString("token_secret",null));

}
            Configuration configuration = builder.build();
            Twitter mTwitter = new TwitterFactory(configuration).getInstance();