GCalendar HolidaysのGoogle Calendar API V3対応

(追記)
Wikiの方も更新しました → GoogleカレンダーからJSONPで日本の祝日一覧を取得 – GCalendar Holidays [ゼロと無限の間に]
(追記終わり)

GCalendar Holidaysで使っていたGoogle Calendar API V2が遂に廃止になってしまいました。(かなり前からDeprecatedになっていて、廃止日も告知されていたのですが、気がついたらもう過ぎていました。)

APIのV3はGoogleのAPI KEYが必須になるため、公開されるJavaScriptからのアクセスは難しいです。(API KEY側にIPアドレス制限が設けられるようですが、それはそれで面倒…)

そこで、とりあえずGoogle AppEngine経由で、Google Calendar API V3から取ったにほんの祝日情報をJSONPで返すようにしました。一部の機能(Googleカレンダー公式版の祝日以外の取得、ブラウザ側のキャッシュ)は未実装ですが、とりあえずGoogle Codeにはあげました。自分のサイトの方も、ぼちぼち更新したいとは思います。

Google AppEngine for PHPは便利ですね。使い慣れないPythonで調べながら作るのもそれはそれで楽しいですが、必要に迫られた時は勝手知ったるPHPでできるのが便利です。
Google Cloud SDKなんてのもできたんですね。AppEngine使うだけなら、今までと変わりませんが…

AppEngine-TwitterとRT_reportをTwitter API 1.1に対応させました

Twitterが2013/3/5をもってTwitter Search APIを廃止し、OAuthによる認証が必要なTwitter REST API 1.1に統合したことへの対応として、AppEngine-Twitterの検索機能で使うAPIをSearch APIからREST API 1.1に変更しました。(でもまだいまだにSearch APIも生きてる気がするけど…)
バージョン0.3.0です。

もともとsearch以外のほとんどの操作はOAuthを前提としていたので、変わったのは主にsearchのとこだけです。

また、それに合わせてRT_reportも対応させました。ギリギリ間に合ったようです。
Rate LimitがIP単位からユーザー単位になったおかげで、たくさんのユーザーが同一IPに同居してすぐにLimitに達してしまうため事実上検索等のAPIは使えなかったGoogle App EngineからのTwitter APIの利用ができるようになったのは喜ばしいことです。

RT_reportのつぶやきを非公式RTから公式のReTweetに変更

RT_reportのつぶやきを、非公式RTから公式のReTweetに変更しました。
以前から公式RTにしたいなとは思ってたのですが、Google App EngineとTwitter Search APIの組み合わせによる制約のため諦めていました。
しかし今日になってふと思いついたので、やってみたらうまくいきました。

これにともない、AppEngine-Twitterもバージョン0.2.0にバージョンアップさせました。
変更点はReTweetができるようになったことと、Twitter APIのアクセス制限時のレスポンスのHTTP Status Codeが503から420に変わっていたことの対応です。(ずいぶん前に変わっていたみたいです。)

AppEngine-Twitter / AppEngine-OAuthの動作サンプルに「乗換案内Bot」を追加

Google App Engine(Python)用ライブラリのAppEngine-Twitter / AppEngine-OAuthの動作サンプルに、新しいTwitter Botを追加した。

その名も乗換(道順)案内Bot

出発地点と目的地を告げると、Googleマップでその経路を調べてURLをリプライしてくれるBotだ。デフォルトは電車・飛行機での乗換案内だが、Googleマップに行ってしまえば車や徒歩でのルート案内も表示できる。

おまけにiPhone/iPadでも使えると思う。(未検証ですが。)

使い方はここを参照。

短縮URLにはBit.lyを使ったが、放っておいてもt.coで短縮してくれるんだっけ?まあいいや。

久しぶりのPythonでいろいろ忘れてた。嫌いではないけどなあ、Python。

AppEngine-Twitterのサンプルに@who_is_nearを追加した

Google App Engineで手軽にTwitterアプリを作成!(OAuthにも対応!) – AppEngine-Twitterの動作サンプルとして、@RT_reportに続いて@who_is_nearを作った。

@who_is_nearは、「@who_is_near 六本木」のように@リプライで地名を渡すと、その近くにいる(ことになっている?)Twitterユーザーの名前を@リプライで知らせてくれるBot。

ジオコーディングにはGoogle Maps APIを使っている。

ちょっと緩めのインターバルで動かしているので、返事は気長に待ってくださいね。

TwitterでたくさんRTされたPOSTをRTするbot “RT_report”を作った

AppEngine-TwitterAppEngine-OAuthのデモとして、たくさんRTされたつぶやきを定期的にPOSTするbot、RT_reportを作った。

また、その副産物として、Today’s RT Rankingも作った。

RTは日本ではまだそれほど普及していないので、洗練されすぎてもいないし、グダグダの方に偏ってもいないので見ていて意外に面白い。賞味期限はもう少しかな?

Twitterのおともによろしければどうぞ。

Google App EngineでOAuthを使ってTwitter APIを扱えるライブラリを公開した

本体はこれ。使い方等も下記リンク先を参照。

Google App Engineで手軽にTwitterアプリを作成!(OAuthにも対応!) – AppEngine-Twitter [ゼロと無限の間に]

OAuth関連の部分は別のclassに抜き出した。

Google App Engineで手軽にOAuthアプリを作成!(Twitterとか!) – AppEngine-OAuth [ゼロと無限の間に]

ついでにGoogle App EngineのRequestHandlerを拡張+ちょっと便利な関数群 – AppEngine-BaseHandler [ゼロと無限の間に]もどうぞ。

OAuthをったサービスを作りたいなら、別途Twitterに申請が必要。(簡単なフォームに書き込むだけだけど。)

それにしてもGoogle App Engine Python版の開発しやすさは素晴らしい。SDKでひととおりできてしまう。軽いし。RDBMSが使えないという点さえなければ…

サイト内アクセスランキングを表示できるサービスを公開した

Page View Board

JavaScriptのコードをサイトに貼り付けておけば、そのサイト内のアクセスランキングを表示できるサービスを公開した。

利用は無料で、登録も不要。

これを使うと、このページの「Wiki内アクセスランキング」のようなランキングが表示される。

詳細についてはPage View Boardを参照してください。

ログを見るとしばしばエラーが出ていたり、Google App Engineの制約でアクセスが増えると使用停止になったりする可能性があるけど、とりあえずはBeta版ということで動かしてみる。

初めてのGoogle App Engineアプリ。初めてのPython。なかなか楽しかった。