出張先の仕事が落ち着いてきて、土日は両方とも休めるようになって時間ができたので、思い付きでTwitterのbot(自動でつぶやきを投稿するプログラム)を作ろうと考えた。
自分がやっている小学校のおやじの会のbotにしよう。
考えた機能は以下の通り。
・おやじの会の打ち合わせや行事予定をつぶやく
・学校行事予定をつぶやく
・過去の行事の写真を投稿する
・プロフィールに「おやじの会」を入れている人をフォローする
この4つの機能を自動で行うようにしたい。
行事予定や写真をどうやって管理するか。
Googleのサービスを使えば、プライベートでも使用しているから使い方は分かるし、APIが提供されているから外部プログラムから取ることができる。
ということで、行事予定はGoogle Calendarを使い、写真はPicasa Web Albumを使用することに決定。
準備したもの
・Python 慣れていたのでなんとなく。開発はWindowsXPだが稼働はCentOS上でやりたかったので、スクリプト言語にした。
3.2をインストールしたが、下記理由で2.7にした。
・easy_install python twitterをインストールするのに必要っぽかったので。Python3.2では対応してないみたいだったのでわざわざPython2.7を入れなおした。
・python-twitter PythonからTwitterにいろいろするためのライブラリ。
・python-twitpic Pythonからtwitpicにいろいろするためのライブラリ。
・Google Data API Googleのいろいろなサービスを操作するためのAPI。
やったこと
・GoogleカレンダーやPicasaWebアルバムと連動させようと思ったので、Googleアカウントを取得。
取得したアカウントでGoogle Calendarにおやじの会のスケジュールと学校行事・PTA行事を登録。
Picasa Web Albumに過去のおやじの会の行事のアルバムを作成した。
・Twitterのアカウントを取得
・Pythonのインストール
上で書いたように、最初はPython3.2を入れたが2.7を入れなおす。
ググってpython-twitterというものがあるらしいと知ったのでeasy_install→python-twitterをインストール
・スクリプト作成
ググって見つけたサンプルコードをまねて、Twitterに投稿するスクリプトを作成。
いきなり認証でつまづく。
OAuthしか許容しないようになってるんじゃないか?
しかもpython-twitterは使えない雰囲気。
ということで、
「やる夫とPythonで学ぶTwitterのOAuth」を参考にTwitter botのAccess Tokenを取得した。
コードも丸パクリでやってみたらうまくいったので一安心。
けどこれってpython twitter意味ないんじゃ…
ということで、oauth-python-twitterなるものがあるみたいなので、これをインストール。
最初に書いて見事にこけたスクリプトを書き直して試してみる。
「良いもの。悪いもの。」を参考にしてみたけどハマる。
サンプルスクリプト中の”tw = OAuthApi(CONSUMER_KEY, CONSUMER_SECRET, request_token)”は不要みたいだ。
あと、oauth-python-twitter には OAuthApi.getAccessTokenWithPin がないので、普通は__init__.pyを修正してインストールするみたい。
しかしWindowsでeasy_installを使うと、修正する暇もなくインストールされてしまう。
めんどくさいのでoauth-python-twitterを使うのはあきらめた。
Linuxに載せ換えるときに考えよう。