22-3 Atom Publishing Protocol

487ページ

use Digest::SHA1 qw(sha1 sha1_hex sha1_base64);
use MIME::Base64 qw(encode_base64);
my $password = "mypassword";
my $nonce = "d36e316282959a9ed4c89851497a717f";
my $timestamp = "2010-03-17T00:00:00Z";
my $text = $nonce . $timestamp . $password;
my $pwdigest = encode_base64(sha1_hex($text));
#!/usr/bin/perl
 
use strict;
use warnings;
 
use lib './lib';
use lib './extlib';
 
use CGI;
use XML::Atom::Entry;
use XML::Atom::Client;
 
my $uri = 'http://user-domain/mt/mt-atom.cgi/1.0';
 
my $api = XML::Atom::Client->new;
$api->username('foo');
$api->password('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;

488ページ

記事の投稿

$uri .= '/blog_id=2';
my $entry = XML::Atom::Entry->new;
$entry->title('This is title');
$entry->content('This is content.');
$entry->summary('This is summary.');
$entry->issued('2010-03-17T00:00:00Z');
my $dc = XML::Atom::Namespace->new(dc => 'http://purl.org/dc/elements/1.1/');
$entry->set($dc, 'dc:subject', 'cat-1');
my $result = $api->createEntry($uri, $entry) or die $api->errstr;
print $result;

記事の取得

$uri .= '/blog_id=2/entry_id=1';
my $result = $api->getFeed($uri) or die $api->errstr;
print $result->as_xml;

489ページ

記事の更新

$uri .= '/blog_id=2/entry_id=1';
my $entry = XML::Atom::Entry->new;
$entry->title('This is title');
$entry->content('This is content.');
my $result = $api->updateEntry($uri, $entry) or die $api->errstr;
print $result;

記事の削除

$uri = '/blog_id=2/entry_id=1';
my $result = $api->deleteEntry($uri) or die $api->errstr;
print $result;

ブログ一覧の取得

my $result = $api->getFeed($uri) or die $api->errstr;
print $result->as_xml;

490ページ

ブログの記事一覧の取得

$uri .= '/blog_id=2';
my $result = $api->getFeed($uri) or die $api->errstr;
print $result->as_xml;

カテゴリの取得

$uri .= '/blog_id=2/svc=categories';
my $result = $api->getFeed($uri) or die $api->errstr;
print $result->as_xml;

コメントの取得

$uri = 'http://user-domainmt/mt/mt-atom.cgi/comments/blog_id=2';
my $result = $api->getFeed($uri) or die $api->errstr;
print $result->as_xml;

491ページ

ファイルアップロード

#!/usr/bin/perl
 
use strict;
use warnings;
 
use lib './lib';
use lib './extlib';
 
use FileHandle;
use XML::Atom::Entry;
use XML::Atom::Client;
 
my $uri = 'http://user-domainmt/mt/mt-atom.cgi/1.0';
 
my $api = XML::Atom::Client->new;
$api->username('foo');
$api->password('bar');
 
$uri .= '/blog_id=2/svc=upload';
my $file = shift;
local $/;
my $fh = FileHandle->new($file) or die "cannnot open $file: $!";
my $image = $fh->getline;
my $entry = XML::Atom::Entry->new;
$entry->content($image);
$entry->content->type('image/jpeg');
$entry->title('File Title');
my $result = $api->createEntry($uri, $entry) or die $api->errstr;
print $result;

このアーカイブについて

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