Reputation: 97
i want to know my screen name after logged in to twitter using oauth in android.
@SuppressLint("NewApi")
private void Authorize()
{
try {
Consumer = new CommonsHttpOAuthConsumer(CONSUMER_KEY, CONSUMER_SECRET);
Provider = new CommonsHttpOAuthProvider("http://twitter.com/oauth/request_token", "http://twitter.com/oauth/access_token", "http://twitter.com/oauth/authorize");
StrictMode.enableDefaults();
String authUrl = Provider.retrieveRequestToken(Consumer, CALLBACK_URL);
Toast.makeText(this, "Please authorize this app!", Toast.LENGTH_LONG).show();
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl)));
} catch (Exception e) {
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
@Override
protected void onResume() {
super.onResume();
try
{
Uri uri = this.getIntent().getData();
if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {
String oauth_verifier = uri.getQueryParameter(OAuth.OAUTH_VERIFIER);
Consumer.setTokenWithSecret(Consumer.getToken(),Consumer.getTokenSecret());
Provider.retrieveAccessToken(Consumer, oauth_verifier);
HttpParameters params1 = Provider.getResponseParameters();
String userName = params1.getFirst("screen_name");
Toast.makeText(this, "user name >>>>>>>>" + userName, Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
}
}
Throw ex onResume function but e.getMessage() is null ( Provider.retrieveAccessToken(Consumer, oauth_verifier); error line )
How can I fix this?
Upvotes: 3
Views: 750
Reputation: 345
You should do params1.get("screen_name").getFirst();
like this
SortedSet<String> screenNameSet = mProvider.getResponseParameters().get("screen_name");
String screenName = screenNameSet.first();
Upvotes: 1