ソース
<?php
// twitteroauth.phpを読み込む。パスはあなたが置いた適切な場所に変更してください
require_once("abraham-twitteroauth-052b55e/twitteroauth/twitteroauth.php");
// Consumer keyの値
$consumer_key = "こんしゅーまーきー";
// Consumer secretの値
$consumer_secret = "こんしゅーまーしーくれっと";
// Access Tokenの値
$access_token = "あくせすとーくん";
// Access Token Secretの値
$access_token_secret = "あくせすとーくんしーくれっと";
// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$out_file =fopen("guids.txt","a+"); $i=0;
$rssdata = simplexml_load_file("http://www.s.u-tokyo.ac.jp/feed/lecture.xml?department=grad-phys"); foreach ($rssdata->channel->item as $rssrow) {
// print "【";
// print $rssrow->title;
// print "】";
// print $rssrow->description;
// print "http://www.s.u-tokyo.ac.jp/lecture/index.html\n";
$guid[$i] = "$rssrow->guid";
$title[$i] = "$rssrow->title";
$desc[$i] = "$rssrow->description";
$i=$i+1;
}
// var_dump($guid);//配列の中身を表示
$i=0;
while (isset($guid[$i])){ // while ($guid[$i] != NULL){
// var_dump($guid[$i]
rewind($out_file);//ファイルポインタを最初に戻す http://www.standpower.com/php_analyz.html while (!feof($out_file)){ $fileline = fgets($out_file); // print "$fileline";
// print "$guid[$i]\n";
if ($fileline == "$guid[$i]\n"){
// print "break!!\n";
break 1;
}
fputs($out_file,"$guid[$i]\n"); $req = $to->OAuthRequest("http://api.twitter.com/1/statuses/update.xml","POST",array("status"=>"【$title[$i]】$desc[$i] http://www.s.u-tokyo.ac.jp/lecture/index.html")); }
}
$i=$i+1;
}
?>
参考にしたサイト
- 今のままだと一度Tweetに失敗するとそれっきりなので、工夫したい。$reqをechoしたときに、tweet成功の時は<status>...</status>となるのに対して、失敗の時は<hash>...</hash>となるのを利用したい。なんかtrueかfalseで分かるメソッドもあると思うんだけど、このPHPのやつは詳しくメソッドが載ってるサイトがなさげ。。 -- (OK) 2012-07-05 16:34:18
- while ($guid[$i] != NULL)としてたのがよくなかったようで、issetを使うように変えた。 cf.【PHP】Undefined offsetエラーの根絶: rikimaruのPG/SEしょーもない備忘録 -- (OK) 2012-06-06 00:44:22
- だがしかし手元のMacでは動くものの研究室のRedhatや@PAGESのサーバーではうまくいかないので作った意味がない疑惑。 -- (OK) 2012-06-05 23:18:31
最終更新:2012年06月06日 00:44