RubyのMechanizeではてなブログへ投稿

  • 30
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はてなブログのエンドポイントがわからなかったので、Mechanizeで作ってみました。


Mechanizeをインストールしておいて下さい。

gem install mechanize

はてなのIDとパスワードを各自設定してください。

hatena.rb
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'mechanize'
require 'pp'  

username = '****'
password = '****'

agent = Mechanize.new

agent.get('https://www.hatena.ne.jp/login') do |page|
  response = page.form_with(:action => '/login') do |form|
    form.field_with(:name => 'name').value = username
    form.field_with(:name => 'password').value = password
  end.click_button

  if response.body.include?('The Hatena ID or password you entered does not match our records.')
    puts 'error: failed to login'
    exit      
  end         
end           

agent.get("http://blog.hatena.ne.jp/#{username}/#{username}.hatenablog.com/edit") do |page|
  response = page.form_with(:id => 'edit-form') do |form|
    form.field_with(:name => 'title').value = 'Mechanizeから投稿'
    form.field_with(:name => 'body').value = 'Mechanizeから投稿しました。'
  end.click_button
end

下から3行目と4行目を変更すれば、記事のタイトルと内容を変更できます。

カテゴリ指定もできるといいなぁ