phpでbot作るならcurlがいいと思う
先日の邪気眼botの話。phpでbot作るのにいくつか方法があるのですが、今回curlを使いました。
参考にしたのは
あともうひとつ忘れちゃった、すみません。
邪気眼botはリプライとランダム発言部分を別スクリプトにしました。
今回はランダム部分見ていきます。ただのランダムじゃ簡単すぎるので外部から情報を取り込んでます。
これも他twitterのrssからとったので、読み込みもpostも両方のサンプルになるかと思います。(ほとんど他所からのコピペだけどNE)
ソース(一部)
<?php $username = "なまえ"; $password = "パスワード"; //buzztterのrssを取得 $host = "http://twitter.com/statuses/user_timeline/5567702.rss"; //以下はZAPAさんところと同じ感じ ////cURLセッションを初期化する $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $host); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); //////cURLセッションを実行する $result = curl_exec($ch); //// //////cURLリソースを閉じ、システムリソースを解放する curl_close($ch); //XML文字列をオブジェクトに代入する $XML = simplexml_load_string($result); //得られたxmlデータをごにょごにょ //buzzterの発言はカンマで区切られた単語なので、それをランダムに抽出し //それをまたランダムなテンプレに当てはめる事をやってます //ポスト部分 //ポストは関数を使います tweet($massage ,$username,$password); function tweet($massage ,$username,$password) { $massage =urlencode($massage); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://twitter.com/statuses/update.xml'); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "status=$massage "); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); $buffer = curl_exec($ch); curl_close($ch); } ?>
メッセージ生成部分は割愛しました。
phpでtwitter関連の事をしようとすると、情報がありそうであんまりなかったりします。
pearやライブラリは極力使いたくない(自力でインストールできない…)ので、ほぼ標準であるcUrlのやり方はありがたかったです。
リプライはかなりアホっぽい方法で実装しています。いずれ、時間のある時に。
あとはフォロー返しですね。よし、頑張ろ。
botはアイデア次第で色々出来そうだし、敷居も低そうなので皆さん練習がてら作ってみてはいかがでしょうか。
以下参考になりそうなサイト(言語とかバラバラです)
八角研究所 : 誰でも簡単にできる Twitter ボット作成入門
式波botを作る - 看招 血染東方一片紅
http://d.hatena.ne.jp/tek_koc/20080804/1217822667