はてなブログのAPI (AtomPub) を利用して自動投稿や複雑なインポートを行う

はてなブログはAtomPubという仕組みによって外部アプリケーションから記事を投稿したり編集したりできる。つまりTwitter APIで外部アプリからツイートするみたいなもん。

私が開発しているCMSはMT形式のエクスポートができなかったし、Markdown記法を継承した独自記法だったのではてなの公式インポート機能ではインポートできない。したがってRubyで記事データをはてな用に加工しながらAtomPub経由でインポートするRubyのコードを書いて一括インポートといった感じで実際に使った。

はてなブログAtomPub - Hatena Developer Center

require 'atomutil'
POST_URI = "https://blog.hatena.ne.jp/hatenaID/example.hatenablog.com/atom/entry"
auth = Atompub::Auth::Wsse.new(
username: 'hatenaID',
password: 'はてなのダッシュボード->設定->詳細設定のAtomPubの項にあるAPIキーを入れる'
)
client = Atompub::Client.new(auth: auth)
entry = Atom::Entry.new(
title: post.title.encode('BINARY', 'BINARY'),
content: post.content.encode('BINARY', 'BINARY')
)
p client.create_entry(POST_URI, entry);

ただAtomPubも含めてはてなは24時間に100記事までしか投稿できないっぽい。一回で最大100件しか投稿できないので、1000件とかの記事をはてなブログに移行したい人はめんどそうだ。はてなの公式のインポートは無制限とかだったりするかもしれないけど。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA