TwitterException с xAuth при публикации с Android с использованием Twitter4j
Я использую twitter4j-2.1.3.jar, чтобы сделать простой пост в твиттере. Код, который я использую:
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.
4 ответа
Вы отправили по электронной почте поддержку Twitter, чтобы они включили xAuth для вашего приложения?
Twitter хочет, чтобы xAuth использовался только настольными и мобильными приложениями, поэтому в зарегистрированных приложениях xAuth по умолчанию отключен, и вам нужно, чтобы кто-то в Twitter включил его для вас. Если в вашем приложении не включен xAuth, вы получите 401.
Чтобы включить xAuth, отправьте электронное письмо по адресу api@twitter.com с названием вашего приложения и причиной, по которой ему нужен xAuth вместо простого старого OAuth (например, неуместно открывать веб-браузер в моем настольном приложении).
Спасибо дхрумил шах
Я согласен с Дхрумилом Шахом: отправьте электронное письмо в Twitter по адресу api@twitter.com, чтобы попросить включить в приложении xAuth. Похоже, вы этого еще не сделали, поэтому сервисный метод xAuth вернет HTTP 401 только при вызове.
Вы проверили эти сообщения?
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>
У меня есть запись в блоге на 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.