サーバーが(ry (5) TwitterBot – TLと@にreply
というわけでBotの基本、誰かの発言にreplyとか@で送ってもらったメッセージにreply。
前のこれがupdate(発言)。
$twitter->statuses->update("んゅ?");
今回見るのはTLなのでこれで。
<code> $arg = array("since_id"=>xxxxxx); $tl = $twitter->statuses->home_timeline($arg); </code> xxxxを最後に取得したステータスIDにしておくとそれ以降が取得できる。 とりあえず取得した発言を処理処理。 <code> foreach($tl as $at){ // 発言したひとの名前(@~~用) $screen_name = $at->user->screen_name; // 発言 $text = $at->text; // 発言ID (in_reply_to用) $reply_id = $at->id; // とりあえずRTには反応しない if(strpos($text, "RT") !== false){ continue; } // 自分宛を取り除いて、それ以外にも@があったら反応しない $raw = str_replace("@Mint_bot", "", $text, $count); if(strpos($text, "@") !== false){ continue; } // 宛先を作るよ $message = "@".$screen_name." "; if($count > 0){ // リプライあり if(strpos($raw, "元気?") !== false){ $message .= "今日も元気にがんばってます~"; }else{ continue; } } else { // リプライなし if(preg_match("/むくり|おはよう/u", $raw) === 1){ $message .= "おはようございます♪"; }else{ continue; } } // データを設定 $arg = array("status"=>$message, "in_reply_reply_to_status_id"=>$reply_id); // つぶやく $twitter->statuses->update($arg); } </code>
疲れた・・・実際のソースと違うから即動かないかもしれないけどこんな感じです。