22-2 XML-RPC
この節には追加情報があります:「22-2 XML-RPC」の追加情報
481ページ
#!/usr/bin/perl
use strict;
use warnings;
use lib './lib';
use lib './extlib';
use CGI;
use XMLRPC::Lite;
my $server = 'http://user-domain/mt/mt-xmlrpc.cgi';
my $user = XMLRPC::Data->type(string => 'foo');
my $pass = XMLRPC::Data->type(string => 'bar');
my $cgi = new CGI;
print $cgi->header(-charset=>'UTF-8'),
$cgi->start_html(-lang=>'ja', -encoding=>'UTF-8', -title=>'test');
# この部分に次項以降のサンプルを挿入
print $cgi->end_html;
482ページ
最新の10件のブログ記事の取得
my $number = XMLRPC::Data->type(int => 10);
my $result = XMLRPC::Lite->proxy($server)
->call('mt.getRecentPostTitles',
$blogid, $user, $pass, $number)
->result;
for (@$result) {
print $_->{ postid };
print $_->{ userid };
print $_->{ title };
print $_->{ dateCreated };
}
ブログ記事の投稿(カテゴリあり)
my $entry;
my $blog_id = XMLRPC::Data->type(string => '1');
$entry->{ title } = XMLRPC::Data->type(string => 'This is title');
$entry->{ description } = XMLRPC::Data->type(string => 'This is content.');
my $publish = XMLRPC::Data->type(boolean => 1);
my $postid = XMLRPC::Lite->proxy($server)
->call('metaWeblog.newPost', $blogid, $user, $pass, $entry, $publish)
->result;
my @cat;
my $category;
$category->{ isPrimary } = XMLRPC::Data->type(boolean => 1);
$category->{ categoryId } = XMLRPC::Data->type(string => '3');
push(@cat, $category);
my $result = XMLRPC::Lite->proxy($server)
->call('mt.setPostCategories', $postid, $user, $pass, \@cat)
->result;
print $result;
483ページ
ブログ記事の取得と更新
my $entry;
my $postid = XMLRPC::Data->type(string => '3');
$entry = XMLRPC::Lite->proxy($server)
->call('metaWeblog.getPost',$postid, $user, $pass)
->result;
$entry->{ title } = XMLRPC::Data->type(string => 'This is fixed title');
my $publish = XMLRPC::Data->type(boolean => 1);
my $result = XMLRPC::Lite->proxy($server)
->call('metaWeblog.editPost', $postid, $user, $pass, $entry, $publish)
->result;
print $result;
ブログ情報の取得
my $result = XMLRPC::Lite->proxy($server)
->call('blogger.getUsersBlogs',
'abc', $user, $pass)
->result;
for (@$result) {
print $_->{ url };
print $_->{ blogid };
print $_->{ blogName };
}
ファイルのアップロード
#!/usr/bin/perl
use strict;
use warnings;
use lib './lib';
use lib './extlib';
use FileHandle;
use XMLRPC::Lite;
my $server = 'http://user-domain/mt/mt-xmlrpc.cgi';
my $user = XMLRPC::Data->type(string => 'foo');
my $pass = XMLRPC::Data->type(string => 'bar');
my $blog_id = XMLRPC::Data->type(string => '1');
my $file = shift;
local $/;
my $fh = FileHandle->new($file) or die "cannnot open $file: $!";
my $image = $fh->getline;
my $f;
$f->{ bits } = $image;
$f->{ name } = XMLRPC::Data->type(string => 'sample.jpg');
my $result = XMLRPC::Lite->proxy($server)
->call('metaWeblog.newMediaObject',$blogid, $user, $pass, $f)
->result;
print $result->{url};
484ページ
NoPublishMeansDraft 1