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);
    }
}

TrackBack URI | RSS feed for comments on this post


Leave a reply