はてなブックマークAtomAPIを使ってプロクシ回避してブックマークできた!
先日終了したかに見えたある仕事ですが2ヶ月間の別プロジェクトを手伝うことになりました。で、問題になるのが、メールとブックマーク環境。メールは先日見つけたGmail-Liteでどうにかなっていて、問題はブックマーク。こちらのとおり、はてな関係がほぼ駄目なんですが、閲覧禁止は100歩譲って認めるとしても(帰ってから見れるし)、ブックマークが出来ないのは痛いなあということで困ってました。
どうしようかと思って、そうかと気づいたのが、はてなブックマークAtomAPIを使って自分サーバ経由でブックマークすれば、プロキシでの規制に引っかからないのだということです。今頃気づくなよ、という感じですが。
で、サーバ側のソースがこれ。「自 Blog のエントリを自動的にブックマークすることにより、ソーシャルブックマーク最適化を施す - Kentaro Kuribayashi's blog」をかなりそのまま参考にしました。ありがとうございます。
#!/usr/bin/perl use strict; use warnings; use XML::Atom::Client; use XML::Atom::Entry; use XML::Atom::Link; use CGI; my $username = 'hoge'; my $password = 'hogehoge'; my $atompost = "http://b.hatena.ne.jp/atom/post"; my $q = CGI->new; my $url = $q->param('url'); my $comment = ''; my $api = XML::Atom::Client->new; $api->username($username); $api->password($password); my $link = XML::Atom::Link->new; $link->href($url); $link->rel('related'); $link->type('text/html'); my $entry = XML::Atom::Entry->new; $entry->add_link($link); $entry->summary($comment); $api->createEntry($atompost, $entry); print "Content-Type:text/html\n\n"; print "<html><body>add $url </body></html>";
debianだとCPANでXML::Atomいれるのに、XML::SAXあたりが上手く入らず落ちてしまうという現象が発生してなんだか大変だったのですが*1、どうにか解決し、無事動きました。よかった。
あとブックマークレットも作らなくては、ということで、こんなかんじです。簡単ですが。
javascript:void(window.open('http://yourserver.com/bkmkadd.cgi?url='+location.href))
これで一応ブックマーク環境は確保できたので、めでたしめでたしなのでした。