AtomPub - APIを使ってブログ記事を更新する

はてなブログAtomPub - Hatena Developer Center
HTTPS化に向けて準備中。「混在コンテンツ」をどうにかする。
久しぶりにRubyで書いた。いろいろと忘れている。

require 'net/http'
require 'uri'

def get_entry(url, user, password)
    url = URI.parse(url)
    res = Net::HTTP.start(url.host, url.port, :use_ssl => true) {|http|
        req = Net::HTTP::Get.new(url.request_uri)
        req.basic_auth(user, password)
        http.request(req)
    }
    return res
end

def put_entry(xml, url, user, password)
    url = URI.parse(url)
    res = Net::HTTP.start(url.host, url.port, :use_ssl => true) {|http|
        req = Net::HTTP::Put.new(url.request_uri)
        req.basic_auth(user, password)
        req.body = xml
        http.request(req)
    }
    return res
end

def edit_entry(xml)
	/**/
end

user = 'はてなID'
password = 'APIキー'
blog_id = 'ブログID'
blog_entry = "https://blog.hatena.ne.jp/#{user}/#{blog_id}/atom/entry"

entry_id = '記事ID'
url = blog_entry + '/' + entry_id
entry = get_entry(url, user, password)
xml = edit_entry(entry.body)
res = put_entry(xml, url, user, password)