Android Twitter xAuth example using twitter4j
Asked Answered
D

2

6

Android: I am trying the following xAuth example for android share.

xAuth Authentication for Twitter Share in Android?

System.setProperty("twitter4j.oauth.consumerKey", "your token");
System.setProperty("twitter4j.oauth.consumerSecret", "your token secret");

Twitter twitter = new TwitterFactory().getInstance(login, password);

AccessToken accessToken = twitter.getOAuthAccessToken();
//Then you must save your Token and Token secret from AccesToken

if (mAccessToken != null) {
    if (mAccessToken.getToken() != null && mAccessToken.getTokenSecret() != null) {
        saveAccessToken(mAccessToken.getToken(), mAccessToken.getTokenSecret());
    }
}

I am having IllegalStateException

Exception Msg: java.lang.IllegalStateException: OAuth consumer key/secret combination not supplied

at the following line

AccessToken accessToken = twitter.getOAuthAccessToken();

I made changes some thing like following

Twitter twitter = new TwitterFactory().getInstance("login", "pass");
            twitter.setOAuthConsumer(getString(R.string.twtAPIKey), getString(R.string.twtSecret));
            AccessToken mAccessToken = twitter.getOAuthAccessToken();

and again I got exception Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

Any working example of xAuth ?

Douglasdouglashome answered 20/8, 2010 at 5:47 Comment(1)
Are you sure your consumerKey and consumerSecret are correct? Also, I don't think this would give such an exception, but have they enabled XAuth for your application at Twitter?Cowpea
P
5

I ' ve used following


ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

     configurationBuilder.setOAuthConsumerKey(Consumer__Key);
     configurationBuilder.setOAuthConsumerSecret(Consumer_Secret);
     Configuration configuration = configurationBuilder.build();

     Twitter twitter = new TwitterFactory(configuration).getInstance("username","password"); 

     AccessToken token = twitter.getOAuthAccessToken();
     System.out.println("Access Token " +token );

     String name = token.getScreenName();
     System.out.println("Screen Name" +name);

     PrintWriter out= response.getWriter();
     System.out.println(token);

And successfully login to Twitter using Android app using xauth

Perineurium answered 20/8, 2010 at 5:49 Comment(3)
I tried above code it is giving following exception message The screen name / password combination seems to be invalid.Douglasdouglashome
@Faisal Khan Hi Have you got your keys enable for xAuth from Twitte. Probably this could be the reason for the error.Perineurium
Yes we are have to request twitter guys to have special xauth account and keys.Douglasdouglashome
L
2

Version 2.2.2 of twitter4j as a slight change. This works:

Configuration configuration = new ConfigurationBuilder()
.setOAuthConsumerKey("your_customer_key")
.setOAuthConsumerSecret("your_customer_secret")
.build();

Twitter twitter = new TwitterFactory(configuration).getInstance(new BasicAuthorization(username, password)); // yes, use "BasicAuthorization" although that seems strange

AccessToken token = twitter.getOAuthAccessToken();
Log.d(TAG, "Access token: " + token.getToken());
Log.d(TAG, "Access token secret: " + token.getTokenSecret());

Remember that your twitter client application needs to be authorized to use xAuth before this works.

Lancey answered 11/5, 2011 at 4:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.