はてなブックマークAtomPub
はてなブックマークの自動登録スクリプトの話。
今まで「hatenabm」ライブラリを使用していましたが、リニューアル後しばらくたって(11/25あたり)から403エラーで使えなくなっちゃいました。ソースを解析するのが面倒なので、空いた時間を利用して「はてなダイアリーAtomPub」のRubyの例題を流用して作成しました(笑)。素人作なので、プロ仕様的なものを誰か作ってくれると助かるんだけどね。
ソースはこんな感じ。
require 'rubygems' require 'atomutil' auth = Atompub::Auth::Wsse.new :username => 'hatena-id', :password => 'password' client = Atompub::Client.new :auth => auth collection_uri = 'http://b.hatena.ne.jp/atom/post' entry = Atom::Entry.new( :title => "", # タイトル(何入れても無視される模様(苦笑)) :link => Atom::Link.new( :type => "text/html", :rel => "related", :href => "" # リンク、下記の「urls」にセット ), :summary => Atom::Content.new( :type => "text/plain", :body => "" # コメントおよびタグ ) ) urls = <<EOF http://hogehoge/ http://foo/bar EOF urls.each_line { |line| entry.link.href = line.strip puts client.create_entry(collection_uri, entry) }
解説はしません。理解できる方だけどうぞ。つーか、ソースに(苦笑)なんて入れるのは俺くらいだろうな。
コメントおよびタグは「[tag]コメント〜」という感じで記入すれば、一括で入ります。「[あとで読む]」みたいなのを入れとくと便利かもね(笑)。
ブックマークに書き込まれたら...
[]http://b.hatena.ne.jp/atom/edit/nnnnnnnn[]
...ってのが表示されますが、その前に...
Bad Content Type: application/x.atom+xml;charset=utf-8
って叱られます。
何で?