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

このアーカイブについて

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。