辻堂の波情報をつぶやくbot作成

土砂降りだったしとる授業ないから引きこもってbot作ってみた。
前々から、ツイッターで”辻堂 波”で検索すると新鮮な波情報が引っかかることを知っていたので、それらを定期的にリツイートするbotを作ろうと思い立った。

その名も”とぅでぃどぅの波”。ツイッターネームはtudidu_surf

サーバーはさくらインターネット、言語はPHPを使用。
またPEARのtwitter用ライブラリであるtwitteroauth.phpを使用。

まず必要なkeyを取得。
http://twitter.com/appsでアプリケーションを登録し ConsumerKeyとConsumerSecretを取得。
次にhttp://dev.twitter.com/apps/からAccessTokenとAccessTokenSecretを取得。これらをメモっておく。これで準備が整った。

下は全ソースコード。

//後でコマンドラインから実行するためにphpのパスを記述
#!/usr/local/bin/php

<?php
require_once ('../../PEAR/twitteroauth/twitteroauth.php');
//インクルードパスを基準に書いたら何故かコマンドラインからの実行でrequrireされなかったのでこのように相対パスを記述

//以下は、上記URLから取得した内容をコピペ
$consumer_key = 'ConsumerKey';
$consumer_secret = 'ConsumerSecret';
$access_token = 'AccessToken';
$access_token_secret = 'AccessTokenSecret';


//リクエストURL作成、XML取得。ここでは5件取得するよう記述
$keyword = urlencode('辻堂 波');
$url = "http://search.twitter.com/search.atom?q=".$keyword."&rpp=5";
$xml = simplexml_load_file($url);


//for文で5件をリツイート
for($i=5;$i>0;$i--){
$id = $xml->entry[$i]->id; //それぞれのつぶやきからidを取得
$id = str_replace('tag:search.twitter.com,2005:','',$id); //使うidの部分だけ抜き取る
$endpoint = "http://api.twitter.com/1/statuses/retweet/".$id.".xml"; //エンドポイントURL作成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret); //twitteroauthクラスのインスタンス生成。
$req = $to->OAuthRequest($endpoint,'POST',array()); //リクエスト送信。リツイートされる。
}
?>


これをcronで定期起動させればおk

ツイッターAPI関連で参考になるページ
http://www.msng.info/archives/2010/01/twitter_api_oauth_with_php.php(OAuth認証全般)
http://tweeter.jp/2010/04/29/twitter-2275.html(アクセストークン取得)


追記(2017/3/22)
上記の方法ではもう使えなくなってます。