我可以成功登录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();
}
}
当我按下主页按钮并再次转到应用程序时,它会打开一个窗口并要求用户再次授权该应用程序。
这很奇怪,因为我希望应用程序会做的是在我按下主页按钮之前它会显示最后一个视图。你能告诉我该怎么做或我做错了什么吗?谢谢。
您必须将该令牌信息存储在共享首选项之类的东西中,并在他们首次登录时保存它。然后在 onCreate 中,测试用户之前是否登录过。如果是这样,请使用共享首选项数据。
本教程让我印象深刻。 http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/
这是完整的安卓推特教程,你可以完成一些步骤。