土砂降りだったしとる授業ないから引きこもって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)
上記の方法ではもう使えなくなってます。
前々から、ツイッターで”辻堂 波”で検索すると新鮮な波情報が引っかかることを知っていたので、それらを定期的にリツイートする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)
上記の方法ではもう使えなくなってます。