Windows Live Spaces にXML-RPC経由で投稿したりする

Windows Live Spaces にXML-RPC経由で投稿したりする

ドキュメントは Windows Live Spaces MetaWeblog API。 tDiary の日記を転送するという目的なので久々にRubyで記述。

getUserBlogs.rb : ブログ情報の取得

require 'xmlrpc/client'

uri = "https://storage.msn.com/storageservice/MetaWeblog.rpc"
username = "kamiyn"
password = "********"
client = XMLRPC::Client.new2( uri )
blogger = client.proxy("blogger")
begin
        appkey = "ignored" # ignored
        result = blogger.getUsersBlogs appkey, username, password
        p result
rescue XMLRPC::FaultException => e
        puts "fault #{e.faultCode}: #{e.faultString}"
end

結果

[{"blogid"=>"MyBlog", "blogName"=>"Mimori's Algorithms Space", "url"=>"http://spaces.msn.com/members/kamiyn"}]

→ blogid は MyBlog である。metaWeblog.newPostドキュメント見ると確かにそう書いてあるんだけど… ドキュメントの記載が This should be the string MyBlog じゃなくて This should be the string "MyBlog" だったら見分けついたのに。

getRecentPosts.rb : 最近の投稿情報の取得

require 'xmlrpc/client'

uri = "https://storage.msn.com/storageservice/MetaWeblog.rpc"
username = "kamiyn"
password = "********"
client = XMLRPC::Client.new2( uri )
metaWeblog = client.proxy("metaWeblog")

begin
        blogid = "MyBlog"
        numberOfPosts = 5
        result = metaWeblog.getRecentPosts blogid, username, password, numberOfPosts
        p result
rescue XMLRPC::FaultException => e
        puts "fault #{e.faultCode}: #{e.faultString}"
end

newPost.rb : 記事の投稿

require 'xmlrpc/client'

uri = "https://storage.msn.com/storageservice/MetaWeblog.rpc"
username = "kamiyn"
password = "********"
client = XMLRPC::Client.new2( uri )
metaWeblog = client.proxy("metaWeblog")

begin
        blogid = "MyBlog"
        title = "testTitle" # タイトル
        description = "testDescription" # 中身
        dateCreated = XMLRPC::DateTime.new(2007,11,1,0,0,0) # 日時
        categories = ["TestCategory"] # カテゴリー
        publish = true # falseにするとドラフトに保存,公開されない
        result = metaWeblog.newPost blogid, username, password, {'title'=>title, 'description'=>description, 'dateCreated'=>dateCreated, 'categories'=>categories}, publish
        p result
rescue XMLRPC::FaultException => e
        puts "fault #{e.faultCode}: #{e.faultString}"
end

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。