![](https://nplll-static.s3-ap-northeast-1.amazonaws.com/assets/2009/04/27_01.jpg)
正直中身についてはよくわかってないんですが、とりあえずエラーログを見てみるとこんな感じ。
[AddToHatenaBookmark] getEntry failed: Error on GET atom/edit/XXXX: 400 URL must be absolute
相対パスじゃなくて絶対パスでリクエストしろよ、と怒られてるみたいです。連続したリクエストなんだから別にいいじゃねーかよとも思うんですが、その辺はなにがしかの仕様変更があったんだと思うのでとりあえずそれに従ってAddToHatenaBookmark.plを以下のように変更。
70行目
my $entry_old = $hatena->getEntry($editURI);
↓
my $entry_old = $hatena->getEntry('http://b.hatena.ne.jp/' . $editURI);
96行目
$msg = $hatena->updateEntry($editURI, $entry_new) ?
↓
$msg = $hatena->updateEntry('http://b.hatena.ne.jp/' . $editURI, $entry_new) ?
これでアップし直して投稿し直してみたら直りました。おおー。
もしお困りの方がいらっしゃいましたら参考までに。
ちなみに、いったん直そうとするのを諦めて他の策としてPHPででも投稿するようにするかとHTTP_Requestを使って投稿するプログラムを書いて、実際上手く動いてあとはこれをどう絡めるかだなーとか思ってたんですが、そのときにPostURIが返してくるレスポンスが相対パスであることに気づいて…やってみたら上手くできたという次第。
よくよく考えると気持ちが悪いんですけどね…また何か問題が起きたらその時に考える方向で。
追記
HatenaBookmarkerも同じ現象で正常に投稿できない(投稿は出来るけど取得と編集が出来ない)状況になっているようです。最新版(執筆時点で0.11)でも同じ。全ての環境で再現できる現象なのか、永続的に続き現象なのかはよくわかりませんがとりあえず上記と同様の方法で直ります。lib/HatenaBookmarker/CMS.pm 83行目
my $editURI = $client->createBookmarkEntry( { url => $obj->permalink, } );
↓
my $editURI = 'http://b.hatena.ne.jp/' . $client->createBookmarkEntry( { url => $obj->permalink, } );
こちらは本当に問題があるなら(=僕の環境が特別じゃないなら)、多分Ogawaさんがフォローしてくれはると思いますので、とりあえず暫定で。