ここ最近TwitGIFが更新されないとか、新しく作れないなどの問題が起きていました。
実は、かなり前からTwitGIFのユーザー数の増加により、Twitter のAPI実行回数制限に達してしまい最新の情報を取得できない問題がおきていました。一時しのぎとして、「TwitterのAPI制限を回避するためのYahoo!Pipes」に書いた通り、API制限回数に含まれないWebアクセスからPipesをつかってスクレイピングをする方法で最新のTweetsを取得していました。
ところが、今度はYahoo!Pipes(つまりYahoo!API)のアクセス制限にかかってしまい、にっちもさっちも行かない状況に陥ってしまいました。そこで、初心に返ってTwitterから公式にAPIアクセスを認めてもらうべく、WhiteListへの登録を申請してみました。
恥ずかしながら、WhiteListの登録の仕方自体を知らなかったんですが、下記のエントリーを参考にさせて頂きました。
WhiteList に申請しましょう。 WhiteList にアカウントが登録されると、 Twitter の API 規制が 1 時間に 2 万アクセス(あるいはそれ以上、なんかこれ人ぞれぞれらしい、俺は 10 分に 2 万アクセスぐらい出来る)になります。
こちらのページから申請する事ができます。
・http://twitter.com/help/request_whitelisting
・許可を申請するアカウント、もしくは接続元IP
・APIを利用する目的を詳しく。どういうアプリケーションで、どのAPIを、どのくらいの頻度で実行するのか。
・連絡先、Emailとかを書いておけばOK。
結構ユルい審査なのかな?と思って一度は前述エントリーのほぼそのままの文章で申請したのですが、「もっと詳しく」という趣旨の返信をもらいました。
We need more information to process your request. Please re-apply and specify which API methods you’ll be calling, and at what frequency.
Your request for Twitter API whitelisting has been rejected
特にやましい事をしようとしている訳ではないので、サービス名やURL、アプリケーションで実行しているAPI(TwitGIFではuser_timelineを取得しています)、実行頻度などを拙い英語で書いて改めて送りました。実行頻度に関しては今登録済みのBadgeが4000以上、アクティブなものだけに絞れば1000ユーザくらいで、10分間はサーバ側でキャッシュをかけているので、1時間に6000リクエストくらいになると算出しました。それから、別のサービスで10000リクエスト(/1時間)も計画中だという事も付け加えたのですが、結果としては20000リクエスト/1時間の許可をもらうことができました。
ちなみに、APIの実行回数残りを取得するAPIもあり、JSONでも取得できるので、アプリケーションに組み込んでおくのもいいかもしれません。
Bookmarkletで簡単にチェックする事もできます。
javascript:alertAPILimit=function(json){alert(json.remaining_hits+'/'+json.hourly_limit);};s=document.createElement('script');s.src='http://twitter.com/account/rate_limit_status.json?callback=alertAPILimit';document.body.appendChild(s);void(0);
簡単ですよね?
まとめ
そんなわけで、長い間放置してしまったTwitGIFの表示不具合について、正式な対応ができたと思います。不具合で利用を諦めていた方がおりましたら是非もう一度トライしていただければと思います。また、何か不具合に気付いた方は@yagerまでお知らせ頂けると助かります。すぐに修正できないかもしれませんが、出来る限り対応したいと思います。