API規制について

79 views
Skip to first unread message

0315 Mount

unread,
May 11, 2015, 6:30:58 AM5/11/15
to twitt...@googlegroups.com
javaの勉強も兼ねてtwitter4jでUserStreamを使いBotを作っています。
起動するとタイムラインの取得等正常に動作するのですが、10秒ほど起動し、また起動するともうAPI制限を受けてしまいます。
こちらのコーディングが悪いのでしょうか?

MyUserStreamAdapter.java http://hastebin.com/wamoyacima.avrasm
一部ユーザー名等は隠しています。

解決策があれば教えていただければと思います。
よろしくお願いいたします。

Yamamoto Yusuke

unread,
May 12, 2015, 9:10:47 AM5/12/15
to twitt...@googlegroups.com
再接続しすぎると一定時間制限をかけられます。
ネットワークの不調などで再接続する際、Twitter4Jは適切にスロットリングを行いますがアプリケーション自体が再起動された場合は調整してくれません。

開発中はお気を付けください。
--
山本 裕介
@yusuke
http://samuraism.jp/
> --
> Twitter4J の最新情報をフォロー: http://twitter.com/t4j_news
> 現在のバージョン - 安定: 4.0.1, 開発中: 4.0.2-SNAPSHOT
> バグトラッキング: http://issue.twitter4j.org/youtrack/issues/TFJ
>
> このメールは次の Google グループの参加者に送られています: Twitter4J J
> このグループにメールで投稿: twitt...@googlegroups.com
> このグループから退会する: http://groups.google.com/group/twitter4j-j?hl=ja
> ---
> このメールは Google グループのグループ「Twitter4J J」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには twitter4j-j...@googlegroups.com にメールを送信してください。
> その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

Satoshi Kubo

unread,
May 12, 2015, 11:06:42 AM5/12/15
to twitt...@googlegroups.com
コード斜め読みしただけですが、

MyUserStreamAdopterクラス内でtwitter.updateStatus("")を乱発しているようにみえるのでそちらが原因じゃないでしょうか。

2015年5月12日 22:10 Yamamoto Yusuke <yus...@mac.com>:
このメールは Google グループのグループ「Twitter4J J」の登録者に送られています。

このグループから退会し、グループからのメールの配信を停止するには twitter4j-j...@googlegroups.com にメールを送信してください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。



--
Satoshi Kubo
mailto:mega...@gmail.com

0315 Mount

unread,
May 13, 2015, 6:45:57 AM5/13/15
to twitt...@googlegroups.com
再接続しすぎると制限をかけられるのは公式ドキュメントを見て把握したのですが、再接続は1度しかしていません。
その1度でもうエラーが帰ってきます。なので再接続が原因とは考えにくいです。

2015年5月12日火曜日 22時10分47秒 UTC+9 yus...@mac.com:

0315 Mount

unread,
May 13, 2015, 6:48:00 AM5/13/15
to twitt...@googlegroups.com
起動時間は10秒ほどですし、22行目のif文の中のStringを""としていますが、実際にはIDを入れているのでupdateStatus("")が実行されるのは数回です。
なのでそれも原因とは考えにくいです。。。

2015年5月13日水曜日 0時06分42秒 UTC+9 Satoshi Kubo:

Yusuke Yamamoto

unread,
May 13, 2015, 7:01:13 AM5/13/15
to twitt...@googlegroups.com
どんな例外が出ていますか?スタックトレース貼り付けていただければ。


-- 
山本 裕介
@yusuke
http://samuraism.jp/
Sent from my iPhone6

Tetsuo Ebina

unread,
May 13, 2015, 8:22:15 AM5/13/15
to twitt...@googlegroups.com
コード読んでみました。
Stringを==でチェックしてるのが影響してるような気がします。


Mailbox から送信

0315 Mount

unread,
May 14, 2015, 2:20:37 AM5/14/15
to twitt...@googlegroups.com
http://hastebin.com/wazegokaqi.tex

起動時のmainメソッドでのTwitterExceptiionの例外です。

2015年5月13日水曜日 20時01分13秒 UTC+9 yus...@mac.com:

0315 Mount

unread,
May 14, 2015, 2:21:33 AM5/14/15
to twitt...@googlegroups.com
equalsIgnoreCase("")としてみました。
API制限が解除され次第試してみたいと思います。

2015年5月13日水曜日 21時22分15秒 UTC+9 NAMACO:

Tetsuo Ebina

unread,
May 14, 2015, 2:35:48 AM5/14/15
to twitt...@googlegroups.com
例外をみました。
code 187のエラーが表示されているので、同じ文面のtweetを連続して投稿しているためだと思います。

Twitterのエラーコードは以下で確認できます。


Mailbox から送信

Yamamoto Yusuke

unread,
May 14, 2015, 2:55:24 AM5/14/15
to twitt...@googlegroups.com
重複投稿ができませんよ、というエラーなので文面を返ればすぐに動かしても大丈夫ですよ


--
山本 裕介
@yusuke
http://samuraism.jp/

0315 Mount

unread,
May 15, 2015, 6:05:54 AM5/15/15
to twitt...@googlegroups.com
お二方とも有難うございました!
このエラーは解決したのですが、色々といじっているうちにRTされたものしか反応しなくなりました。
自分や他人のRTでしかonStatus()が呼び出されないようです。
MyUserStreamAdapter.java  http://hastebin.com/sumitagoyu.avrasm
Main.javaは前回の物から起動時ツイートを削除しただけです。

2015年5月14日木曜日 15時55分24秒 UTC+9 yus...@mac.com:
Reply all
Reply to author
Forward
0 new messages