我可以成功登录Twitter并获取用户的详细信息。我的TwitterLoginActivity是我将登录代码放入twitter的类。以下是代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.twitter_login_layout);
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith(TWITTER_CALLBACK_URL)) {
String verifier = uri.getQueryParameter(URL_TWITTER_OAUTH_VERIFIER);
try {
AccessToken accessToken = twitter.getOAuthAccessToken(requestToken, verifier);
Log.e("Twitter OAuth Token", "> " + accessToken.getToken());
Intent i = new Intent(TwitterLoginActivity.this, MainActivity.class);
startActivity(i);
overridePendingTransition(0,0);
finish();
} catch (Exception e) {
Log.e("Twitter Login Error", "> " + e.getMessage());
}
}
loginToTwitter();
}
private void loginToTwitter() {
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY);
builder.setOAuthConsumerSecret(TWITTER_CONSUMER_SECRET);
Configuration configuration = builder.build();
TwitterFactory factory = new TwitterFactory(configuration);
twitter = factory.getInstance();
try {
requestToken = twitter.getOAuthRequestToken(TWITTER_CALLBACK_URL);
this.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(requestToken.getAuthenticationURL())));
Log.e("twitterlogin", "logintotwitter-try");
} catch (TwitterException e) {
e.printStackTrace();
}
}
当我按下主页按钮并再次转到该应用程序时,它会打开一个窗口并要求用户再次授权该应用程序。
这很奇怪,因为我期望应用程序会在按下主页按钮之前显示最后一个视图。你能告诉我该做什么或我做错了什么吗?感谢。
答案 0 :(得分:1)
您必须将令牌信息存储在共享首选项之类的内容中,并在第一次登录时保存。然后在onCreate中,测试用户是否已登录。如果是,请使用共享首选项数据。
这个教程告诉了我。 http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/
答案 1 :(得分:1)
Here is the full android Twitter tutorial,您可以完成各个步骤。