モブ沢工房

プログラミングとかLinux関連(特にOSSのグラフィックツール関連)とかレトロゲームとか3Dプリンタやら日曜大工等、色々。

fc2にpythonによるxml-rpcでアクセスしてみる、の巻

xml-rpc,やってみますた!

目的は、

  • 自作のfc2->はてな引っ越しスクリプトにおいて、引っ越したエントリを自動で下書き状態にする
  • そして、下書きにしたエントリの一覧を保存し、いざという時に一括で戻せるようにする
  • python-markdownなども使い、ローカルでマークダウンで書いたエントリを変換送信しfc2でもマークダウンな暮らしを送る(将来の野望)

…まぁ、fc2が今後も健在であればですけどネー。そうあってもらいたい。 ググってみても意外と見通しのよい資料がなく難渋しましたが (そのくせ、他のキーワードでググってると見たかった情報に後で到達したり…)、触ってみれば簡単でした。

import xmlrpclib

server_url = 'http://blog.fc2.com/xmlrpc.php';
server = xmlrpclib.ServerProxy(server_url);

blogid='' # 空白でよし
userid="俺@メアド"  # 登録時のメールアドレス
pswd='********' #パスワード。こわいなー

print str(server.mt.getCategoryList(blogid,userid,pswd))

さすがpython

それで、mt.supportedMethodsを呼び出すとエラーになる件。元々mt.supportedMethodsはパスワード不要なAPIで誰でも呼び出せるとのことですが、バージョンが違うのか独自拡張なのか?他のAPI同様、blogid,userid,pswdを付ければ呼び出せました。

print str(server.mt.supportedMethods(blogid,userid,pswd))

結果を一応コピっておきますと

['blogger.getUsersBlogs', 'blogger.getUserInfo', 'blogger.newPost', 'blogger.editPost', 'blogger.deletePost', 'blogger.getRecentPosts', 'metaWeblog.newPost', 'metaWeblog.editPost', 'metaWeblog.getPost', 'metaWeblog.getRecentPosts', 'metaWeblog.newMediaObject', 'metaWeblog.getCategories', 'mt.getRecentPostTitles', 'mt.getCategoryList', 'mt.getPostCategories', 'mt.setPostCategories', 'mt.supportedMethods', 'mt.supportedTextFilters', 'mt.getTrackbackPings', 'mt.publishPost', 'mt.setNextScheduledPost']

となっておりました。