2017-11-27 25 views
-3

私たちは多くの異なるツイッターアカウントを置くことができる小さなツールを作った。入力アカウントと呼ぶことができます。このツールでは、「入力アカウント」が従っているすべてのアカウントの大きなリストを作成し、アカウントの表示頻度をランク付けします。したがって、50個の入力アカウントでは、アカウントは最大50回まで表示されます。ツールを実行するとき、このような問題が発生します:Twitter APIの制限

Exception in Tkinter callback 
Traceback (most recent call last): 
File"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/tkinter/__init__.py", line 1699, in call 
    return self.func(*args) 
    File "/Users/user1/Desktop/untitled folder 2/twitter1.py", line 67, in runThecode 
    listt=returnFriends(accounts) 
    File "/Users/user1/Desktop/untitled folder 2/twitter1.py", line 30, in returnFriends 
    listFriends+=api.friends_ids(account) 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tweepy/binder.py", line 245, in _call 
    return method.execute() 
    File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tweepy/binder.py", line 227, in execute 
    raise RateLimitError(error_msg, resp) 
tweepy.error.RateLimitError: [{'message': 'Rate limit exceeded', 'code': 88}] 

どうしてこの問題が解決できますか?

答えて

2

Twitterには、指定した期間内にいくつのapiリクエストを送信できるかが制限されています。短時間に多くのリクエストを実行すると、レート制限を超えます。詳細はこのブログの記事を読んでください。 https://blog.twitter.com/official/en_us/a/2008/what-does-rate-limit-exceeded-mean-updated.html

あなたはこのようなことをしなければなりません。サンプルコードを追加していない擬似コードです。

// whatever is twitter rate limit reset time 
private const retryInSeconds = 600; 

try { 
    performApiRequest(); 
} catch (RateLimitException e) { 
    wait for retryInSeconds then performApiRequest(); 
} 
+0

API saisが「限界に達した」とすぐにツールを停止する方法はありますか? – RichiChillt

+1

コードなしで言うのは難しいです。 –

関連する問題