Пример использования Twitter в Android Twitter с использованием twitter4j - PullRequest
6 голосов
/ 20 августа 2010

Android: я пытаюсь использовать следующий пример xAuth для общего ресурса Android.

Аутентификация xAuth для Twitter Поделиться в 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());
    }
}

У меня IllegalStateException

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

в следующей строке

AccessToken accessToken = twitter.getOAuthAccessToken();

Я внес некоторые изменения, например, следующие

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

и снова получил исключение Exception Msg: java.lang.IllegalStateException: Basic authenticated instance.

Какой-нибудь рабочий пример xAuth?

Ответы [ 2 ]

5 голосов
/ 20 августа 2010

Я использовал следующее


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);

И успешно авторизовался в Twitter с помощью приложения Android, используя xauth

2 голосов
/ 11 мая 2011

Версия 2.2.2 из twitter4j как небольшое изменение. Это работает:

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());

Помните, что ваше клиентское приложение Twitter должно быть авторизовано для использования xAuth , прежде чем это заработает.

...