[MovableType][Perl]RPC::XML::Clientを使ってカテゴリ一覧を取得する方法

サンプルコード

mt_get_categories.pl
#!/usr/bin/perl

use strict;
use warnings;
use RPC::XML::Client;
use Encode;

my $cgi_url = 'http://example.com/mt/mt-xmlrpc.cgi';
my $blog_id = 1;
my $username = 'username;    # MTのログインユーザ名
my $password  = 'password';  # MTのログインパスワード

my $cli = RPC::XML::Client->new($cgi_url);
my $res = $cli->send_request('mt.getCategoryList', $blog_id, $username, $password);
my $categories = $res;

for my $category (@$categories) {
    print encode('utf8'
        , $category->{categoryId}->value ." ". $category->{categoryName}->value . "\n"
    );
}

実行結果

自分のブログで実行してみました。
$ ./mt_get_category_list.pl 
19 Linux
37 JavaScript
18 トレンド
15 Perl
13 XREA
14 活動記録
16 MovableType
20 プライベート
21 MySQL
22 買い物
23 メモ
41 MSDE
25 雑感
26 Apache
27 PHP
28 HTTP
40 Access
30 Management
31 読書メモ
43 PowerPoint
42 Excel
39 WSH
38 VBA
46 Ethna
44 Perl再入門
45 Ubuntu
48 CSS
50 Emacs
51 C言語
参考
[MovableType]XML-RPCを使ってカテゴリ一覧を取得するPerlスクリプト
[ThinkIT] 第2回:XML-RPCを利用したWeb API (1/2) - XML-RPCをPerlから使う

XMLRPC::LiteとRPC::XMLとどちらのモジュールを使っても同じことができるので選択に悩むところですが、
RPC::XMLの方が品質が高くて高速なようです。
(XMLRPC::Liteは文字コードに関するバグがあります。)

XMLRPC::Lite にくらべると RPC::XML の方がインストール時の癖もすくないし、SOAP を前提にしていない分コードもよみやすいように感じる。速度面についても、RPC::XML の方が 7x Faster である。

2010年にXMLRPCをPerl5でつかう方法について考えた(XMLRPC on Plack)
カテゴリ: