Archive for 12月, 2009
Twitter APIの回数制限をGAE上のプロキシで回避する方法
Twitter API proxyをGoogle App Engine上で動かす方法
プロキシの必要性
プロキシを経由してAPIにアクセスすると何がいいのか
- TwitterのAPIはアカウント&IPアドレスでカウントされているので、APIの使用回数を増やせる。
グローバルIPアドレスをPCごとに変えられない環境で2台のPCから見るときに便利 - Twitterへのアクセスが制限されている環境でも使用できる。
元々GFW(グレート・ファイアー・ウォール)を超えるために作られたっぽい - ちゃんと確認してないけど、GAEはホワイトリストに入ってる気がするので、API回数が20000になったりする事もある。
要はAPI使用回数を増やせるよって話。
必要なもの
- Google App Engineのアカウント
- Google App Engine SDK とPython実行環境
- birdnest 一式のファイル(Python)
まずはGoogle App Engineのアカウントを作成します。(すでに持ってる人は、新しいアプリケーションを作成するだけ)
Google App Engineのアカウント登録とアプリ作成 – 130単位 を参考にアカウントとアプリケーションを作成します。
このときのアプリケーションのIDは後で必要になるので控えといて下さい(Google App Engineのページにアクセスすればいつでも見られるけど)
次に開発環境 – Google App Engine – Google Codeを参考にPythonの実行環境とSDKをダウンロード&インストールします。(ここも既にやってる人はスルー)
Pythonは2.5が推奨されているのでできればそちらをダウンロードした方がいいです。(一応2.6でも動きました)
次に今回、Google App Engine上で動かすプロキシのスクリプトである、birdnestをダウンロードします。
http://birdnest.googlecode.com/svn/branches/gae/ 以下のファイルを全部ダウンロードするのですが、そのままだと面倒なので、
【第17回】EclipseでSubversion – Tech [Friday] プロモバイルエンジニアブログ などを参考にEclipseを使ってSVNをチェックアウトしてまとめてダウンロードしました。
これらのファイルを先ほど作成したアプリケーションID名のフォルダを作りその中に入れておきます。(これは説明を統一するためなので絶対必要な操作ではないかも)
アプリケーションのIDがtwitproxyならtwitproxyというフォルダを作りその中に入れる。
ファイルの編集
ダウンロードしたapp.yamlを編集する必要があります。
一行目のアプリケーション名を先ほど控えてた自分が作成したGoogle App EngineのアプリケーションIDに変更します。
application: アプリケーションのID
テスト&アップロード
Pythonが入っていれば、コマンドプロンプトでPythonと打ち込むとバージョンが表示されます。(エラーになる場合はPython周りがおかしい)
まずは動くかどうかをテストします。
GAEではローカルでテストするためにSDKにサーバがあるのでそのスクリプトを起動して確認します。
同じくコマンドプロンプト上で、
Python "C:\Program Files\Google\google_appengine\dev_appserver.py" 先ほど作成したフォルダへのパス
と打ち込んだ状態(コマンドプロンプトは閉じない)でhttp://localhost:8080/にアクセスとページが表示されると思います。
この上でTwitterクライアントのAPIURLをhttp://localhost:8080/api/ にして使えるか確認できるといいです。
Google App Engineを使ったTwitterBotの作り方 – 星屑日記 を詳しく読むといいかも。
アップロード
次に編集したファイルをGAEにアップロードします。
先ほど同様にコマンドプロンプト上から
Python "C:\Program Files\Google\google_appengine\appcfg.py update 先ほど作成したフォルダへのパス
と打ち込むとアップロードが始まります。
そしてhttp://アプリケーション名.appspot.com/にアクセスしてテストの時と同じページが表示されればアップロードは成功です。
実際にプロキシとして使用する
Echofonをインストールしてextensionフォルダに行きます
vista
C:\Users\ユーザー名\AppData\Roaming\Mozilla\Firefox\Profiles\eプロファイル名\extensions\twitternotifier@naan.net\components
XP
C:\Documents and Settings\ユーザー名\Application Data\Mozilla\Firefox\Profiles\プロファイル名\extensions\twitternotifier@naan.net\components
ここにあるnsTwitterFox.jsを編集します。
var TWITTER_API_URL = “http://アプリケーション名.appspot.com/api/”;
と変更すると、GAE上で動いているプロキシを通してAPIにアクセスすることができます。
基本的にAPIのURL指定を変更できるソフトなら同じ方法でプロキシを通してアクセスできる。
海外のクライアントだとAPIを指定できるソフトも多いです。
Spazの場合だと設定画面にBase API URLを指定できるので、同じようにhttp://アプリケーション名.appspot.com/api/を入れればプロキシ経由で使用できます。

設置が凄い面倒でセキュリティを気にしない人は
birdnest – a twitter api proxyを同じように使えるかもね。
以下参考
- birdnest – Project Hosting on Google Code
- http://code.google.com/p/birdnest/
- How to set up Twitter API Proxy with Google App Engine | Bruce Yo’s Blog
- http://www.bruceyo.info/archives/402
- Google App Engineを使ったTwitterBotの作り方 – 星屑日記
- http://d.hatena.ne.jp/intheflight/20090611/p1
Javascript向けIDE「Spket IDE」の導入
Spket IDEをインストールしてみるメモ。
Spket IDEはJavaScriptのコーディングやXMLなど向けのIDEでAptanaと同様にEclipseのプラグインとしても動作します。
また、Firefox Extension Projectを作成できたりアドオン作成向け機能もある。
今回は単体で動作するスタンドアロンとしてインストールする。
Spket IDEとは何かを詳しく知りたい人は下を読んでみるといいかも。
- [Think IT] 第1回:Spket IDEとは何か? (1/3)
- http://www.thinkit.co.jp/free/article/0709/1/1/
- Spketを使う | OpenLaszlo JP
- http://www.openlaszlo.jp/?q=node/13
- ExtJSの開発はSpket IDEがイイ感じ。Eclipseのプラグインでも動く。 – 蜘蛛の糸をつむぐには…
- http://djodjo.jp/archives/149
- Firefoxアドオン(拡張機能)の作り方
- http://masahal.web.fc2.com/addon_lecture/
- Eclipse plugin Spket IDE を試してみる – hogehoge
- http://d.hatena.ne.jp/teramako/20070409/p1
インストール
上のサイトにインストール手順も書いてあるので重複するけど簡単な流れ
- Downloads からSpket IDEをダウンロード
- jarファイルなので、
java -jar spket-1.6.8.jar みたいな感じでjarファイルを実行してインストーラーを起動 - インストーラーでIDEを選びインストール場所とかを決めてインストール
- 起動するとWorkspaceを聞かれるので適当に決めて動くか確認。
基本的にはEclipseなので、あんまり問題ないと思います。
日本語化
こちらもEclipseと同じやり方が通用するので簡単な流れ
- Pleiades (今回は安定版)をダウンロード
- 中身のfeatures、pluginsをSpket IDEに上書き
- 起動して日本語になってなければ、Spket IDEフォルダのspket.iniの最後に以下を書き加える
-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=default.splash
- 変な動作するなら-cleanオプションを付けて見るといいかも。
設定
まず最初に設定から文字コードをUTF-8にしておく
メニューより、Windows > Preferences… を選択し、 General > Workspace > Text file encoding において Other をチェックし、 「UTF-8」 を選択する。
感想
- Aptanaに比べるとかなり軽い
- コード補完にXPCOMもでてくるのが少しウザイ(拡張機能開発には便利そう)
- JSDocに対応している
- アウトラインがわかりやすい


