忙しい。
ま、それはそれとして
Twitter4Jが
User is over daily status update limit.
をでTwitterExceptionを出す時、TwitterException.getRateLimitStatus()はnullが入ってて情報は取れない。
とりあえず1時間sleepするのがよかろう。
忙しい。
ま、それはそれとして
Twitter4Jが
User is over daily status update limit.
をでTwitterExceptionを出す時、TwitterException.getRateLimitStatus()はnullが入ってて情報は取れない。
とりあえず1時間sleepするのがよかろう。
しかも続きそうなのが嫌。
TwitterException.getErrorCode()で取れた。
ちなみに
User is over daily status update limit.だと187 Status is over 140 charactersだと 186 Status is a duplicate.の時は185
RateLimitStatus.getSecondsUntilReset()で待つべき時間が取れるような気がするがログ仕込んで再現待ち。
というような事やってたらやけにタイミング良い宣伝が。
国産ミニブログCroudiaは、トークン数制限とレートリミットが無いAPIを公開しました。Croudia API 1.0はコチラからご利用いただけます。https://developer.croudia.com/
https://twitter.com/pokemishi/status/428567206008344577
しかしクローディア使ってる人を見たこと無い…が、まぁ…考えておこう…多分やらない気がするが…評判悪いし…。利用規約もキナ臭い事書いてある。
クラウディアで思い出したがそういえば会社にはガンプラや動物ぬいぐるみ飾ってる人は居るがさすがにクラウディア系は見かけないな…。
何故延々と0%が続いた後にいきなり終了するのか。
事象発生してログ取れてた。
警告: Tweet失敗. TE= 403:The request is understood, but it has been refused. An accompanying error me ssage will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-u pdate-api-dm-and-following). message - User is over daily status update limit. code - 185 Relevant discussions can be found on the Internet at: http://www.google.co.jp/search?q=b2b52c28 or http://www.google.co.jp/search?q=12a1f4ad TwitterException{exceptionCode=[b2b52c28-12a1f4ad], statusCode=403, message=User is over daily status update limit., code=185, retryAfter=-1, rateLimitStatus=null, version=3.0.5} at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:162) at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61) at twitter4j.internal.http.HttpClientWrapper.post(HttpClientWrapper.java:98) at twitter4j.TwitterImpl.post(TwitterImpl.java:1965) at twitter4j.TwitterImpl.updateStatus(TwitterImpl.java:275) at nekora.jms.JMSQueueReceive.tweet(JMSQueueReceive.java:446) at nekora.jms.JMSQueueReceive.onMessage(JMSQueueReceive.java:364) at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1230) at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134) at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205) at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:127) at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) 1 28, 2014 12:42:55 午前 nekora.jms.JMSQueueReceive tweet 警告: te.isCausedByNetworkIssue()=false 1 28, 2014 12:42:55 午前 nekora.jms.JMSQueueReceive tweet 警告: te.exceededRateLimitation()=false
「User is over daily status update limit」で失敗の時はte.exceededRateLimitation()がtrueになるかと思いきや、ならないっぽいので、Exceptionのメッセージ文字列で判定するのが良かろう。あるいはcode=185が取れるメソッドがありそうならそれで。
しかしここ2.5週間と、今後2〜3週間は毎日午前様なので修正は日曜だな。もう寝る。
疲れて家でゴロゴロしていた。
この先少なくとも2週間はまだまだ忙しい予定。
あとTwitterプログラムの動作がちょっと怪しいのでログをいれたが。
会社が残業に五月蠅くなってから久々。
困ったものである。
困ったものである。