2016年05月03日

Ruby スクリプトでさくらブログに投稿する

 さくらブログは、管理画面の「新規投稿」で投稿できるようになっている。ところが、書きかけの状態でうっかりブラウザを閉じたりすると、作成途中の文章がきれいさっぱり消えてしまう。当然と言えばそれまでだが、これまではローカルのテキストエディタで文章を作成してアップロードしていたので、不便で仕方がない。そこで、ローカルで作成した文章をスクリプトで自動投稿することを考えた。

 情報が今ひとつ断片的だったので、いろいろ探しまわった。次のようにすればいいらしい。

  • さくらブログの管理画面の「ブログ一覧」を開く。
  • 「投稿ツール用設定」で、ID とパスワードを設定する。(参考:XML-RPC経由の記事投稿を行う際に必要となるブログIDとパスワードの設定方法。ここでは「ブログID」という名前になっているが、全ブログに共通の ID なので、「ユーザーID」と考えた方がよい)
  • ブログ名のリンク先 URL を表示すると、"blog_id=......" としてブログIDが記述されているので、これをメモしておく。(これはブログごとの ID なので、本当の「ブログID」)

 以上を準備した上で、Ruby で次のように記述する。

require 'xmlrpc/client'
userID = "d-alchemy.sakura.ne.jp"  #  ユーザーID
password = "some_password"         #  パスワード
blogID = "123456"                  #  ブログID
title = "タイトル"                 #  タイトル
body = "これが本文です。"          #  本文
keywords = "キーワード1,キーワード2" #  キーワード
contents = { :title => title, :description => body, :mt_keywords => keywords }
proxy = XMLRPC::Client.new("blog.sakura.ne.jp", "/rpc")
postID = proxy.call("metaWeblog.newPost", blogID, userID, password, contents, 1)

 キーワードは指定できるが、タグは指定できないらしい。投稿してから手動でつけるしかない。この仕様はちょっと残念。

Posted at 2016年05月03日 10:08:41
email.png