2010-09-02 2 views
1

Я использую twitter4j-2.1.3.jar, чтобы сделать простую запись в твиттер. Код, который я использую:TwitterException с xAuth при отправке с Android с помощью Twitter4j

System.setProperty("twitter4j.oauth.consumerKey", TWITTER_CONSUMER_KEY); 
System.setProperty("twitter4j.oauth.consumerSecret",TWITTER_SECRET_KEY); 
Twitter twitter = new TwitterFactory().getInstance(username,password); 
AccessToken accessToken = twitter.getOAuthAccessToken(); 
twitter.updateStatus(": xAuth test"); 

сообщение об ошибке я получаю:

TwitterException{exceptionCode=[e07c50ee-0000d883 1ac06e3f-626a1296], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.3} 

    at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:185) 
    at twitter4j.TwitterOAuthSupportBaseImpl.getOAuthAccessToken(TwitterOAuthSupportBaseImpl.java:108) 
    at twitter4j.Twitter.getOAuthAccessToken(Twitter.java:54) 
    at com.sfway.detailpage.CheckinTab$16$1.run(CheckinTab.java:640) 
    TwitterException{exceptionCode=[1ac06e3f-626a1296], statusCode=401, retryAfter=0, rateLimitStatus=null, version=2.1.3} 
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:307) 
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:72) 
    at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:103) 
    at twitter4j.http.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:178) 

Я попробовал другой способ, как это:

ConfigurationBuilder configurationBuilder = new ConfigurationBuilder(); 
configurationBuilder.setOAuthConsumerKey(TWITTER_CONSUMER_KEY); 
configurationBuilder.setOAuthConsumerSecret(TWITTER_SECRET_KEY); 
Configuration configuration = configurationBuilder.build(); 
twitter = new TwitterFactory(configuration).getInstance(username,password); 
AccessToken token = twitter.getOAuthAccessToken(); 
twitter.updateStatus(": xAuth test"); 

В обоих методах я получаю ошибку при Строка twitter.getOAuthAccessToken(). Пожалуйста, дайте мне знать, что случилось. Я зарегистрировал свое приложение ровно 14 часов раньше, чтобы получить секретный и потребительский ключ. Является ли это чем-то связанным с утверждением моего приложения для использования xAuth, если да, то как я могу узнать, включили ли они XAuth для моего приложения в Twitter.

ответ

2

Вы отправили по электронной почте поддержку Twitter, чтобы заставить их включить xAuth для вашего приложения?

Twitter только хочет, чтобы xAuth использовался настольными и мобильными приложениями, поэтому зарегистрированные приложения по умолчанию отключили xAuth, и вам нужен кто-то в Twitter, чтобы включить его для вас. Если вы не используете xAuth, вы получаете 401.

Чтобы включить xAuth, отправьте электронное письмо на [email protected] с именем вашего приложения и причиной, по которой ему требуется xAuth вместо обычного старого OAuth (например, не рекомендуется всплывать веб-браузер в моем настольном приложении).

Благодаря Dhrumil Шах

0

Вы проверили эти сообщения?

http://groups.google.com/group/twitter4j/browse_thread/thread/d6dca9622f7cc42a?fwc=1

Переключение версии решил эту проблему для человека

<dependency> 
<groupId>org.twitter4j</groupId> 
<artifactId>twitter4j-core</artifactId> 
<version>2.1.0</version> 
</dependency> 
+0

привет rahul, интересно, как добавить эту зависимость в Android, любую идею. – ganesh

0

У меня есть блог на Twitter OAuth с помощью Twitter4j и других библиотек. Вы можете следить за тем, чтобы: http://blog.sogeti.com/mobile/2010/03/twitter-oauth-for-android.html

Также, если вы используете Twitter4j2.1.3, убедитесь, что он совместим с Android 2.0 и выше. Дайте мне знать, если вы все еще сталкиваетесь с проблемами, так как у меня разработано полное приложение Twitter с использованием Twitter4j 2.0.9.

+0

Большое спасибо, ваше сообщение было очень сложным и замечательным, но я использую xauth, я буду рад узнать, почему приведенный выше код не удался. – ganesh

+0

ссылка сейчас не работает –

0

Я согласен с Dhrumil Shah: электронная почта Twitter в [email protected] попросить приложение, чтобы иметь включен XAUTH. Кажется, вы еще этого не сделали, поэтому метод службы xAuth будет только возвращать HTTP 401, когда вы его вызываете.