TwitterException с Xauth при публикации с Android с помощью Twitter4J
Вопрос
Я использую Twitter4j-2.1.3.jar, чтобы сделать простой пост в Twitter. Код, который я использую:
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.
Решение
Вы отправили поддержку Twitter, чтобы заставить их включить Xauth для вашего приложения?
Twitter Want Hauth будет использоваться на рабочем столе и мобильных приложениях, поэтому зарегистрированные приложения имеют XAUTH отключить по умолчанию Xauth, и вам нужен кто-то в Twitter, чтобы включить его для вас. Если у вас приложение не включено Xauth, вы получаете 401.
Чтобы получить Shauth Enabled, отправьте электронное письмо на api@twitter.com с именем вашего приложения и причина, по которой нужно xauth, а не простым старым Оавтом (например, не подходит для всплывающего веб-браузера в моем настольном компьютере).
Спасибо Друмил Шах
Другие советы
Вы проверили эти сообщения ??
http://groups.google.com/group/twitter4j/browse_thread/thrad/d6dca9622f7cc42a9fwc=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-andandroid.html.
Также, если вы используете Twitter4J2.1.3 AWRE, что он совместим с Android 2.0 и выше. Дайте мне знать, если вы все еще сталкиваетесь с проблемами, поскольку у меня появилось полный приложение Twitter, используя Twitter4J 2.0.9.
я согласен с Друмил Шах: Email Twitter на api@twitter.com, чтобы запросить ваше заявление, чтобы Xauth включен. Похоже, вы еще не сделали это, поэтому тогда метод службы XAUTH вернет только HTTP 401, когда вы его называете.