<

![endif]-->

fc2ブログ

TwiierAPIをコールするサーバ

TwitterAPIのホワイトリストが終了してしまったため、TwitterAPIを利用したサービスはAPIの利用制限を考慮しながら作らなければなりません。

TwitterAPIのREST版の制限は
150回/1IP/1時間(無記名)
350回/1IP/1時間(記名)
になります。

検索APIは非公開ですがRESTよりも多いとされています。
この制限よりもAPIの利用が多くなってしまう場合、IPアドレスを増やすしか方法がありません。
そこで、TwitterAPIを利用する場合、TwitterAPIをコールするサーバを複数立てて、そこを経由する方法を考えました。

言語はrubyでサーバ機能はWebrickを使いました。TwitterAPIはgemのtwitterを利用しています。
返値はjsonにしました。multi_jsonはgemのtwitterをインストールする時に付いてきたものです。
ソースは以下の通りです。

## coding: utf-8
require 'twitter'
require 'webrick'
require 'multi_json'

s = WEBrick::HTTPServer.new(
:Port => 8000,
)
s.mount_proc("/") {|req, res|
res['Content-Type'] = 'text/plain; charset=UTF-8'
res.body = MultiJson.encode(Twitter::Search.new.q(req.query['q']).fetch)
}
trap("INT"){ s.shutdown }
s.start


http://localhost:8000/?q=Twitter
でアクセスすると検索結果が帰ってきます。