Home » August 2006 » XML-Atom-GDataClient

XML-Atom-GDataClient

Tatsuhiko Miyagawa / XML-Atom-0.22 - search.cpan.orgのXML::Atom::ClientをGoogle Data API対応にするモジュールを作ってみた。

/XML-Atom-GDataClient/trunk - Ogawa::Code - Trac

私はPerlモジュールの命名規則や標準的なコーディング規則を知らないので、問題があったらコメントください。

以下は簡単な使用例。

#!/usr/bin/perl
use strict;
use XML::Atom::GDataClient;
use XML::Atom::Entry;
use XML::Atom::Person;
 
my $api = XML::Atom::GDataClient->new;
$api->username('username@gmail.com');
$api->password('password');
$api->service('blogger'); # using Blogger service
 
my $entry = XML::Atom::Entry->new(Version => 1);
$entry->title('Hello');
$entry->content('Hello, World!');
my $author = XML::Atom::Person->new(Version => 1);
$author->name('Foo Bar');
$author->email('foo@gmail.com');
$entry->author($author);
 
my $postURI = 'http://beta.blogger.com/feeds/###################/posts/full';
my $editURI = $api->createEntry($postURI, $entry);

実はcreateEntryしか動作確認していません。現状でupdateEntryやdeleteEntryに失敗するのは、Blogger Data API側の問題のようなので、修正されたらもう少し突っ込んで調べてみるつもりです。

追記: このモジュールを使ってBlogger Data API - Ogawa::Memorandaでちょっと触れた、comment用のpostURIに対してcreateEntryできるかどうかというのを確認してみました。

結果は"400 Bad Request"が返ってくるが、entryとしては保存されるというものでした。しかし、Blogger: Error performing your requestのように親entryのページのレンダリングに失敗するようになってしまいます。おそらくcommentにはcomment用の拡張schemaがあるのでしょう。ともかく、こうなってしまうと該当commentだけを削除する手段はないので、親entryごと削除するしかありません。

…実験はほどほどに。

Comments and Trackbacks