ツイッターボットを作ってみた

最近、昔本業だったプログラマーに若干復帰中でしてね。
でも、データーベースとか苦手で、そこら辺の仕事は避けてたんですが、今回とうとうデーターベースを駆使する仕事をする事になったのです。
おかげさんで、通り一遍の作法は覚えました。(笑)
で、折角覚えた作法を忘れないように、自分のスキル維持の意味も兼ねて、ツイッターボットを自作してみました。
用意するものは…特にありません。w
Perlのプログラミング知識と、多少のSQLを覚えていればできます。
そもそも、ツイッターをコントロールするモジュールがあったんですね。
知りませんでした。w
そいつを使えばいとも簡単につぶやけるのです。
で、自分の使っているレンタルサーバーにそのモジュールがインストールされてるかどうかを確認してみますと…コレにかぎらず、よく使いそうなモジュールは殆ど全部インストールされてました!やるな!ロリポップ!wwwで、そのモジュールとは…「Net::Twittter::Lite」でした。
こりゃ便利だ!www
で、とりあえずデーターベースにあるセリフをつぶやくcgiを作成。
「メカきやへん」と命名。w
出来たら早速Twitterのデベロッパーページにて、アプリ登録をして、動作試験。
うまくつぶやくようなら、それをcron設定して終了。
あとは、時間が来たら勝手につぶやく筈…だった。w
ところが、一度だけつぶやいて、二回目以降は「メカきやへん」がサボりまくりです。
コイツはなんと本物に似てルーズなんだろう!?と思い、「説教せねば!」ってんでソースを見るが、別段おかしなところはない。
で、cronに異常があるとエラーメッセージをメールしてくることを思い出した。
メールを見ると英語でごちゃごちゃ書いてある。
要約すると、「投稿したメッセージが重複しているので、コイツは通せねーな…。」と言われてます。
重複ったって、前の投稿から数時間経ってるのに?と思ってツイッターの仕様を調べてみると、なんと全く同一のつぶやきは、何時間経過してようがダメだそうで…。
なので、毎回違うことをつぶやかなきゃならない。
ん〜今は、とりあえずバンド募集が掛けれればOKなので、そんなにつぶやくことはない。
で、考えた挙句、タイムスタンプを残そうということになった。
投稿時間を秒まで表示すれば、毎回違う文字列にすることが出来る。
コレは名案!と思って、つぶやきに、そのタイムスタンプを追加してつぶやこうとしてみたら…つぶやかない。
今度はなんだろうと思ったら、なんと文字数がオーバーしていた。www
なので、タイムスタンプ分を削って文字を書かねばならなくなった。w
結構辛い。。。
ま、でもなんとか動くようなのでコレでいっか。
とりあえず…。
一応、bot(メカきやへん)は1時間毎に仕事するように設定して、投げるメッセージの投稿指定時間に合わせて投稿する形にした。
MySQLにデーターを仕込んで、指定時間が来ると其の時間につぶやくセリフを呼び出して、つぶやくって仕様にした。
一般的なbotがどういう仕組なのか知らないので、とりあえずつぶやいてっからコレでいいやって感じです。
面倒なので、厳密なエラーチェックをしてなかったのが敗因ですな。
でも、やっぱ面倒だからユルい感じのPerlスクリプトです。www
メカきやへんのアイコン。w