2010年1月11日月曜日

[PC]TwitterのBot作ってた

ひょんなことから、GoogleAppEngineを使ってBotを作って見ようと思い立ちましてこの土日にひっさびさに家でプログラムなんぞ組んでました。いやまぁ組んだなんて大層な事言えたものは作ってないですが!
そもそもGoogleAppEngine(以下GAE)なんてものを全く知らず、まずはそこから。
どうやらPythonやJavaで作ったプログラムをGoogleのサーバ上にアップし、そこにアクセスしたらPythonやJavaのプログラムが実行されるという仕組みらしい。ようするにCGIみたいなもんかな?
Googleさんがやってるサービスってことでこれもまた無料。ただし登録できるアプリは10個で、しかも削除はできないということらしいのでテストで1個潰すのには躊躇しちゃうかも。
って場合にも大丈夫なように、サンドボックス環境は提供されております。SDKに同梱されているのでそこでがっつり試しておいていざ本番用にアップロードって形ですね。
で、いざBotをつくろうってたってまずはTwitterのAPIを扱わなきゃ仕方ない。ってことでAPIを調べようかと思ったんですが、どうやらtwiter-pythonってなPython用のライブラリがあるらしく、そちらを使うととても簡単にTwitterとやりとりができるとか。
しかもGAEはPythonに対応してるのでまさにうってつけ。つーことでPythonで作ってみることに。
ただ、私はPythonは全くの初心者。かろうじてインデントが重要な意味を持つってことを把握してるくらいで、構文も予約語も知らない状態ですw
まー習作って事で、cronでアクセスする度にてけとーなことをつぶやくBotを作成しました。
一応アカウントを晒しておくとします。
胡散臭い髭の男 (usankusai_hige) on Twitter
ただ、私の作り方が悪いのかなかなか呟いてくれません・・・。ランダムで適当に喋らせてはいるのですが、それがうまく反映されないようです。API制限に引っかかるほど呟いちゃいないんだけどなぁ。15分に1回だし。エラーは発生してないけど、つぶやきの内容が一切更新されないという謎。よー分からんので放置。忘れた頃に呟きます(笑)
後は追々台詞を増やしていくとか、フォロワーの発言からキーワードを拾ってリプライするとかいろいろやりたいんですが、実装ができないとかじゃなくてやって楽しそうな内容が思いつかないので(台詞を増やす以外)やってません。
ただ、思いのほか簡単にGAEは扱えたので、なんぞWebサービスを開発したいなら使い勝手がよさそう。いろいろと制約もきついですが、PythonやJavaがほぼネイティブで動かせるというのは大きいんじゃないかな?
twitter-pythonのライブラリもかなりGAEと相性いいし、ものすごく自分の趣味に特化したBot(情報収集系)を作るには向いていそうだ。
うーん、久々にプログラムした気がするなぁ。いやまぁ会社でもやってるんですけどね?Orz