約150.000人のフォロワーがいるTwitterアカウントからすべてのfollowersIDを取得しようとしています。後でそれらの場所をマップしたいのですが、最初にそれらすべてのIDが必要です。
現在、私はこのコードを使用しています:
long lCursorIDs = -1;
long[] fArray = new long[100];
do
{
fArray = twitter.getFollowersIDs(name, lCursorIDs).getIDs();
} while (twitter.getFollowersIDs(name, lCursorIDs).hasNext ());
try
{
PrintWriter pr = new PrintWriter(filenameOutput);
for (int i=0; i<fArray.length ; i++)
{
pr.println(fArray[i]);
}
pr.close();
System.out.println("Follower IDs collected and saved to file: " + filenameOutput );
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("No such file exists.");
}
これは、フォロワーが少ないユーザーに対して機能します。しかし、その数が多いと、常にエラーメッセージが返されます-レート制限を超えました。1時間に特定の数のフォロワーIDのみを取得することを考えていましたが、その方法がわからず、最初のフォロワーから1時間ごとに開始するわけではありません。また、1回のリクエストで何人のフォロワーを獲得できるかわかりません。「lookupUser」メソッドと同様に100かもしれませんが、よくわかりません。アイデアや提案はありますか?
編集:わかりました、2700人のフォロワーを持つアカウントのfollowerIDを取得しようとしましたが、テキストファイルに正しく保存されました。また、1つのリクエストのみを「コスト」します。アカウント名を15500フォロワーのアカウントに変更したところ、レート制限を超えたというメッセージが表示されて再びクラッシュしました。フォロワーの数は約6倍しかないので、理由はわかりませんが、残りのリクエストはすべて費やされます。私が間違っていることについて何かアイデアはありますか?