PHP、XML-RPCでブログ投稿MetaWeblog編
21 2 月 2009
MetaWeblog系をサポートしているブログ:
Seesaa BLOG, JUGEM, exciteブログ, ヤプログ!, ドリコムブログ, アメーバブログ, mixiの日記, キヌガサの日記, エコログ, ウェブリブログ, NetLaputa BLOG, 269g, SweetBox Blog, FC2NETWORK の日記, FC2BLOG, 楽天広場, So-net blog, goo Blog, COLORS の日記, MSN Spaces
PEARのServices_Bloggingを利用すれば、ほぼコーディングせず,
非常に簡単にブログ投稿が行えます。
require_once 'Services/Blogging.php';
$bl = Services_Blogging::factory(
'MetaWeblog',
'username', 'password',
'blog.example.com', '/xmlrpc.php'
);
$post = $bl->createNewPost();
//$post->setId('14');
$post->title = '記事タイトルです。';
$post->content = "ここは記事の文です。";
$post->categories = array('カテゴリ1', 'カテゴリ2');
$bl->savePost($post);
$nLastPostId = $post->id;
echo 'post id: ' . $nLastPostId . "\r\n";
//$bl->deletePost(17);
var_dump($bl->getPost($nLastPostId));
var_dump($bl->getRecentPostTitles(2));
var_dump($bl->getRecentPosts());
SeesaaなどブログIDを指定する必要がある場合、Driverクラスを拡張する必要があります。こんな感じです:
class My_MetaWeblog extends Services_Blogging_Driver_MetaWeblog
{
public function __construct($user, $pass, $server, $path, $blogId)
{
$this->userdata = array(
'user' => $user,
'pass' => $pass,
'server' => $server,
'path' => $path,
'rpc_user' => new XML_RPC_Value($user, 'string'),
'rpc_pass' => new XML_RPC_Value($pass, 'string'),
'rpc_blogid'=> new XML_RPC_Value($blogId, 'string'),
);
$this->rpc_client = new XML_RPC_Client(
$this->userdata['path'],
$this->userdata['server']
);
//$this->rpc_client->setDebug(true);
}
}
Leave a reply