スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

twitter API 1.1 「75,000フォロワー」の壁

Twitter API 1.1を利用してアプリを作る時、テストすることが難しいチェック項目にぶつかることがある。
それが「めっちゃフォロワーが多かった場合」の挙動だ。
大抵テストアカウントはフォロワー数が少ないので、「もしこのアプリを100万人フォロワーがいる人が使ったら?」というテストができない。何かいい方法はあるのだろうか。

ところでタイトルの件、twtter API 1.1には「Rate Limit」と呼ばれる呼び出し回数制限がある。
TwitterのAPI利用制限 ver.1.1

例えば全フォロワーのidが欲しい場合、下記のAPIを利用できるのだが、1度に取得できるidの最大数は5,000、そしてこのAPIのRate Limitは15回/15分、つまりユーザに認証させる瞬間には最大で75,000ユーザぶんのidしか取れないことになる。
では75,000ユーザ以上の情報を取るにはどうすればいいのか?
Twitterのドキュメントではこの部分が明言されていないので「ということは75,000が限度、ということか?」という理解しか出来ないのだが、こちらにしっかりと明言されていた。
https://twittercommunity.com/t/get-followers-ids-from-users-with-more-than-75000-followers-rate-limit-problem/10665

Yes, you can persist the cursor between calls. They are stable for the user you're querying on behalf of. If a user has more followers/followings than you can fetch in a single rate limit window, wait for the current window to roll over to the next and resume from the cursor you stored.

by twitterのスタッフ

上記から得られた情報は下記の2つ。
1. 75,001以上は15分後に取得しなさい
2. cursorの値は永続的に変わらないよ!だから75,000ユーザのデータを取得した時のnext_cursorの値を保存しといてあとからそのcursor分から再開せよ!

ということ。
「フォロワーが7.5K以上いるユーザはそんなにいないからこれでも間に合う判断」とも取れるが、その数パーセントのユーザのために特別な後処理をしなければいけないのはなかなか骨だ。とはいえそういうユーザが影響力を持っているので捨てるわけにもいかず、非常に悩ましい。

コメント

コメントの投稿

非公開コメント

PR

PR

プロフィール

何でも書くman

Author:何でも書くman
思ったことや備忘録など、とりあえずなんでも書きます。IT系のことや趣味、生活に関わることなども。

ページの先頭へ戻る
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。