Twitter Bot 作ってみた

Pocket

折角、プログラミングを勉強しているので、なんか作ってみたくなった。
Twitterボット プログラミングテクニックTwitterボット プログラミングテクニック
というのも、たまたま本屋でTwitterボット プログラミングテクニックが目について、phpで作れると書いてあり、ちょうど自分もphpを扱っていたので都合よかったからだ。
ただしこの本はphpの勉強のため本ではない。
あくまでBotでこんなことができるよというテクニック集だ。
自分のやりたいようにBotを動かすためには、すこしだけ工夫しなければならない。
自分はRSSから情報を成形しなおして、つぶやくBotをつくってみたが、何度も同じつぶやきをしないようにする仕組みを工夫した。
ファイルに発言を記録して、そこをチェックするという仕組みをいれたが、発言する度にファイルにつぶやきを書き込むのでどんどんファイル容量が増えてしまう。
そこで、RSSで取得する件数は20件なので、過去20件の発言のみ記録すればよいと思った。
要はファイルの行数が21件以上になった場合、(ファイルの行数-20)行をファイル先頭(古いもの)から削除すればいい。
これをどうプログラムするか。
わかる人には超かんたんなんだろうけど、こんな感じにした。
$j = 20;
$topics = file(“ファイルパス”);
$k = count($topics);
if($k > $j){
array_splice($topics, 0, $k – $j);
}
$dellog = fopen(“ファイルパス”, “w”);
flock($dellog, LOCK_EX);
foreach($topics as $value) {
fputs($dellog, $value);
}
flock($dellog, LOCK_UN);
fclose($dellog);
ちなみに、肝心なRSSを取得し、つぶやきに変換する部分は、simplexml_load_fileというXMLを解析してくれるすばらしい関数をつかうことにより、案外簡単にでけた。
関数を知っているか、知らなくても調べることができるのか、組み合わせて工夫できるか。
それがプログラミングできるできないの違いなんだろうね。

Pocket