Rubyで記事をAtomAPIを使用して更新する方法としては、「atomutil」というgemを使用するのが定番のようだが
いろんな記事を見てみると、新しいRubyのバージョンだと、文字エンコーディングのエラーが発生するため
「atomutil」をforkした「ruby-atomutil」というgemを使用している記事が多い。
[参考]
はてなブログのAPIを使って、記事を投稿するRubyサンプル · GitHub
Ruby | はてなダイアリーAtomPubをRubyから利用してブログ記事を投稿する - Tbpgr Blog
しかし、2018年9月4日で最新版(0.1.5)が更新されて
この文字系のエラーが解消されているので以下のように書けば、記事を作成できる。
インストール
gem 'atomutil', '~> 0.1.5'
コード
def initialize @user_id = ENV['HATENA_USER_ID'] @password = ENV['HATENA_API_KEY'] @create_page_url = "#{ENV['HATENA_BLOG_ROOT_END_POINT']}/entry" end def create(title, content) auth = Atompub::Auth::Wsse.new(username: @user_id, password: @password) client = Atompub::Client.new(auth: auth) entry = Atom::Entry.new({ title: title, content: content }) client.create_entry(@create_page_url, entry) end ... ... title = 'テストタイトル' content = <<~'EOS' *表題 - リスト1 - リスト2 EOS create(title content)
[他参考]
Rubyのヒアドキュメントの書き方いろいろ - Hack Your Design!
Ruby:はてなブログAPIを使って記事の一覧をJSON形式で取得する - Madogiwa Blog