2012-02-03 1 views
0

Я использую Twitter4J 2.2.5 (последние, пробовал другие версии). И больше не может получать прямые сообщения для работы вообще. Тот же код, который использовался для работы некоторое время назад. Я предполагаю, что Twitter что-то изменил.Twiiter4J getDirectMessages() больше не работает?

Я использую

Twitter.getDirectMessages()

и дает ошибку ниже. Не знаю, почему, я могу видеть прямые сообщения для учетной записи, если я вхожу в систему, но всегда получаю эту ошибку. Предельная ошибка не имеет смысла, поскольку учетная запись не находится где-то вблизи предела.

Другие работы API, такие как подписчики/жареные/статус/и т. Д.

403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (http://support.twitter.com/forums/10711/entries/15364). 
Relevant discussions can be on the Internet at: 
    http://www.google.co.jp/search?q=00919618 or 
    http://www.google.co.jp/search?q=332bf6ca 
TwitterException{exceptionCode=[00919618-332bf6ca], statusCode=403, retryAfter=0, rateLimitStatus=RateLimitStatusJSONImpl{remainingHits=107, hourlyLimit=350, resetTimeInSeconds=1328297, secondsUntilReset=1116, resetTime=Fri Feb 03 14:39:45 EST 2012}, version=2.2.2} 
    at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189) 
    at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65) 
    at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:93) 
    at twitter4j.TwitterImpl.get(TwitterImpl.java:1721) 
    at twitter4j.TwitterImpl.getDirectMessages(TwitterImpl.java:874) 
    at org.pandora.sense.twitter.TwitterDirectMessaging.checkDirectMessages(TwitterDirectMessaging.java:44) 
    at org.pandora.sense.twitter.TwitterDirectMessaging.checkProfile(TwitterDirectMessaging.java:35) 
    at org.pandora.sense.twitter.Twitter$1.run(Twitter.java:100) 
    at java.lang.Thread.run(Thread.java:662) 

ответ

1

Twitter некоторое время назад изменил правила для прямых сообщений. Пользователь должен быть специально уполномочен для доступа к прямым сообщениям.

Вы уверены, что это верно для вас? Вы можете перейти на веб-сайт Twitter и проверить приложение.

0

Чтобы получить прямое сообщение, вам следует попробовать приведенный ниже код. Он работает для меня.

getDirectMessages(); дает прямых сообщений. Нам нужно поставить для цикла, чтобы получить текст каждого сообщения.

 List<DirectMessage> messages = twitter.getDirectMessages(); 
     for (DirectMessage message : messages) 
     { 
      System.out.println(message.getText()); 
     } 

Сообщите мне, если вы заметили ошибку.