ボットのアイデアを決めたのが、5月15日なのでリリースまで一ヶ月もかかってるのか。ちょっと遅いですね。
細かく説明していきます。
1. 作ったもの
released_cd_bot
今日と同じ日付に発売したCDの情報を教えてくれるボット。例えば6月20日であれば、過去10年間の6月20日発売のCDを探してきて、ランダムにつぶやいてくれる。こんな感じに。
2001年の今日、06月20日は、Eminemの「The Marshall Mathers LP (Asian 2 Disc Version)」が発売された日です。 http://bit.ly/bSGWGk「あー、あのCDは3年前の今日発売されたのかー。懐かしいなー。」と感じてもらうのが目的。
CDの情報は、Amazonから検索してて、アーティストで絞り込まずに、レーベルで絞り込んだ。なぜなら、対象アーティストを登録するのが大変だから。いくつかのレーベルを対象にしただけでかなりの数のアーティストが検索に引っかかった。
3時間ごとに1回つぶやくことにした。あとは、30分ごとに自動でフォローとリムーブをしてくれるようにした。残念ながら、ダイレクトメッセージとかをくれても、新たにレーベルを追加したりはしない。
2. 利用した環境
・Google App Engine for Java
TwitterBotの動作環境として使用。サーバを用意する必要もないし、スケジュールタスクも実行できるからちょうど良かった。ドキュメントも充実してるし。Pythonはあまり触ったことがないのでJavaにした。
3. 利用したライブラリ、API
・slim3
slim3なんて不要な規模なはずだけど、使いやすかったので使ってみた。
・Twitter4J
Twitter API 用の Javaライブラリ。Twitterとのやりとりはこちらを使用。
・Amazon Product Advertising API
Amazonの商品情報へアクセスできるAPI。Amazonとのやりとりは、こちらのAPIを使用。実質、サンプルをほぼそのまま利用したのみ。日付を検索条件に追加してるのと、取得する内容にランキング情報を追加してる。
・Bitly API
URL短縮サービスのBitlyのAPI。Amazonの商品のリンクを短縮するのに利用。
4. 振り返って
実際の工数は5人日くらいでしょうか、思っていたよりは短時間で出来た。
ここ2週間くらい実際に動かしてみて、いくつか不具合を見つけて修正済み。さらに不具合が見つかり次第修正したい。
Amazon APIの知識不足から当初はアーティストで検索する仕様にしていて修正の必要が出たりした。そこで結構いろいろ時間を取られてたんだけど、条件をレーベルに切り替えたらすんなり出来た。プログラム自体はほんとに対したことはしていなくて、それぞれのAPIの仕様を調べることの方に多くの時間を割いたかな。
これ、つぶやく情報をCDから本に切り替えるだけで楽しめそう。
あー、そうだ。
Twitterの認証がOAuth認証に対応してないので、問題が出てきたら修正します。