かずきち。の日記

サーバサイドエンジニアのつぶやき

Twitter botを作ってみた。

一度、Twitter bot*1を作ってみたかったので…
このたび作ってみました。


今回作ってみたのはテレビ番組を放送10分前に告知してくれるbotです。
二番煎じだし、別に面白みゼロですが作りました。

@find_tvをフォローしてみてください。

また#find_tvのハッシュタグで意見・要望も募集しています♪
なおテレビ番組は[東京]の地域に限定して、地上波デジタル放送の番組をお送りしています。
今後はEPG情報を付与させて、一発で外出先から録画予約ができるようにもしたいと考えています。


さて作ってみます。
下準備としてGoogleで配布されているpython-twitterモジュールを入れます。
ここからDLできます。
http://code.google.com/p/python-twitter/


解凍させて、ディレクトリに入ってを打てば終了です。

$ python setup.py build
$ python setup.py install


TwitterAPIはとても簡単で3分クッキングです。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import simplejson
import twitter

# Constract twitter api instance
USERNAME = "ユーザID"
PASSWORD = "パスワード"
api = twitter.Api(username=USERNAME, password=PASSWORD)

# Post twitter
status = api.PostUpdate(u"書きたいこと")


なんか、特定のハッシュタグやReplyのみを集めるとかもできるらしいですが…
ちょっとそんな暇はないのでまた今度考えておきます。
フォローされたら自動的にフォローし返すのも作ってもいいかもしれません。


注意点としてはunicodeでポストする必要があります。
POSTするだけだったら3分で終わったと思うのですが、MySQLのDBのエンコーディングの問題の方が重大で結局作るのに3時間くらいかかっていましたwアホです。
MySQLはデフォだとlatin1とかいう文字コードなのでしょうか??だいぶ困り果ててました。
あとは毎分ごとプログラムを起動させて、10分後に番組があるかないかを判定させてポストさせています。

*1:コンピュータが自動で発言するもので企業のプロモーションで使われていたりします