2012年6月29日金曜日

PHPでTwitter botつくるよー|2.検索、RT、フォロー

TwitterのbotをPHPで作るよということで、今更感満載ですが。
目的などについては、PHPでTwitter botつくるよー|1.Oauth認証までを御覧ください。
また、以下は、前回の記事の方法でOauth認証を済ませた状態で動くものです。

ではさっそく、必要機能の1つ目、
・あるキーワードを含むツイートを、RTする。また、その発言者をフォローする。
を実装します。
このあたりはTwitter DevelopersにあるREST API Resourcesを参照しながらサクサク作成していきます。コードが折り返されてしまうのがどうにも直らなくって醜いかもしれませんがご容赦ください。

/******************************************************
キーワード で検索してリツイート&follow
*******************************************************/
//「キーワード」による検索結果を取得(urlエンコードしたきーわーどをq=以下に)
$seach_result=file_get_contents('http://search.twitter.com/search.json?q=%E3%82%AD%E3%83%BC%E3%83%AF%E3%83%BC%E3%83%89');
//jsonをデコードしてオブジェクトを取得
$data = json_decode($seach_result);

// retweet & follow
/ 検索で得られたツイートひとつひとつに対して
foreach ( $data->results as $key ) {
//自分のTweetかどうかの判断
if($key->from_user !=="MyUserName"){
     //違う場合はリツイートリクエスト
$res = $objOauth->OAuthRequest('https://api.twitter.com/1/statuses/retweet/'.$key->id_str.'.json','POST',array());
//followしていないかどうか判断 screen_name_aがscreen_name_bをフォローしていればtrue
if(file_get_contents('https://api.twitter.com/1/friendships/exists.json?screen_name_a=MyUserName&screen_name_b='.$key->from_user)==="false"){
  //followしていない場合はfollowする
$res = $objOauth->OAuthRequest('http://api.twitter.com/1/friendships/create.json','POST',array('screen_name' => $key->from_user, 'follow' => 'true'));
}
          //あまり間隔開けずに連投RTするのも迷惑なので、適当に処理停止
sleep(rand(29,158));
}
}

取得した検索結果についてよくご存知でない方は、$dataをダンプして中身確認してみると良いとおもいます。ここで使っているのはfrom_user 発言者とid_str ツイートid(文字列)のみです。今回はここまで。

追記
Twitterのいろいろな自動化についてはTwitterの規約に触れる場合があります。確認の上、ご自身の責任で行いましょう。

0 件のコメント:

コメントを投稿