別の場所で
各サイトのXML(RSS)を引っ張ってきて自分のブログに投稿するというしろもの
を作ってみたので作り方っぽい物を載せておきます。
■他所(FC2ブログ)のXMLを取得して自分のブログへ投稿を行います。
※XML-RPCの解説サイトを見たほうが早いかもしらん。
■準備するもの
・PHP5が入ってるサーバー
Xreaとか色々できそうでオススメ。
なんでPHP5? → 使ってるXMLパース用のメソッドが5にしか無いため。
・Wordpress本体
インストールは終えておく。
設定>投稿設定のリモート投稿:XML-RPCにチェックを入れて更新。
・エディタ
NoEditorとかEmeditorとか
・取得するRSSのアドレス
http://~~~xmlとか。
今回はFC2ブログのものを取得します。
■流れ的な
XMLを取りに行く
↓
取得したXMLのVerチェック
↓
XMLのノードをHTMLで出力できるように並べる
↓
IXR_Libraryを使ってXML-RPC接続を行う
↓
Wordpressへ投稿する
↓
カテゴリを変更する
↓
おしまい。
■ソース
children()->item);
/*
$nowYear = “2009”;
$nowMonth = “03”;
$nowDay = “13”;
*/
$nowYear = date(“Y”);
$nowMonth = date(“m”);
$nowDay = date(“d”);
for($i=0;$i<$count;$i++){
$entryDay[$i] = $xml->item[$i]->children($dc)->date;
if(preg_match(“/($nowYear)-($nowMonth)-($nowDay)/”,$entryDay[$i],$m1)){
$publish = “
“;
$publish .= “
“;
//$publish .= “
“. $xml->item[$i]->description .”
“;
$publish .= “
“;
$publish .= “
“;
$TodayTitle[$i] .= $xml->item[$i]->title .”|”;
$MasterSpark .=$publish;
}else{
//
}
}
}
include_once(‘IXR_Library.php’);
$site_url = ‘ サイトアドレス ‘;
$userid = ‘ ログインID ‘;
$userpw = ‘ ログインパス ‘;
//wordpressのxmlrpc.phpがある場所を指定
$base_uri = $site_url . ‘xmlrpc.php’;
//接続パラメータ
$encoding = ‘UTF-8’;
$method = ‘metaWeblog.newPost’;
$titleStock = mb_substr($TodayTitle[0],0,60,’UTF-8′);
print($titleStock);
$title = $titleStock;
$description = $MasterSpark;
//実際に送るデータ
$params = array(
1,
$userid,
$userpw,
array(
‘title’ => $title,
‘description’ => $description
),
0, //0:草案 1:公開
);
print_r($params);
// XML-RPC通信をする
$client = new IXR_Client($base_uri);
$return = $client->query($method, $params);
if ( !$return ) {
echo $client->getErrorCode() . ‘:’ . $client->getErrorMessage() . ‘n’;
exit();
}
$postid = $client->getResponse(); //PostIDの取得
//カテゴリ変更
$method = ‘mt.setPostCategories’;
$categories = array(‘categoryId’=>’3’); //変更後のカテゴリID
//実際に送るデータ
$params = array(
$postid,
$userid,
$userpw,
$categories
);
// XML-RPC通信をする
$client = new IXR_Client($base_uri);
$return = $client->query($method, $params);
if ( !$return ) {
echo $client->getErrorCode() . ‘:’ . $client->getErrorMessage() . ‘n’;
exit();
}
?>
上のソースを適当に名前(get.phpなど)をつけてサーバーにアップ。同じディレクトリにIXR_Library.phpも上げておいてください。
アップしたphpファイルにブラウザからアクセスを行うとRSS取得~投稿までが実行されます。
このままじゃ知らない人がアクセスしてきた時にも投稿が実行されてしまうので、その辺はBasic認証でもかけて大丈夫なようにしておく感じで。
アクセスした日付の情報のみを投稿するようにしています。
途中コメントアウトで日付が書いてあるところは、その日中にアクセスできず更新できなかった時用に。
そのあたりはオモテの画面にテキストボックスなんかを用意しといて送信されてから実行するような作り方にしておけばいいのですが、面倒なので直接書いてしまってます。
■後書き
上記程度くらいの利用ならソーシャルブックマークとかRSSリーダーに入れておいた方が手間無し。
発展させた形で利用するのが良いんです。
・複数サイト同時更新
・製品情報横取り
・2chブログ系アンテナ
などなど・・・
また、Cronが動かせるサーバーならフルオートも可能に。
ほっといても勝手に更新してくれる。
手間かかからなくて良いんだけど、ぬくもりが皆無。
■参考サイト・ページ
phpとpearでXML-RPCを利用してWordPressへ投稿
Notes: WordPress XML-RPC API
XML-RPC 投稿日時を指定してWordPressへ投稿する
コメント