WordPress.comが受け取るXML-RPCのメソッド名一覧を取得する
本Blogでも利用しているBlogソフトウェアWordPress。さまざまな外部のサービスと連携するために、XML-RPCによるAPIが用意されています。そのWordPressのAPIを呼び出すサンプルです。
手始めに、WordPressのホスティングを行っていて、3GBまで無料で利用できるWordPress.comにアカウントを取得。このサービスがどのようなAPIを持っているか、その一覧を取得するAppleScriptを書いてみました。
XML-RPCによるWebサービスは、必死になって探さないとなかなか継続して行われているサービスを(日本国内で)みつけることは難しいところですが、Blogはその例外といえるのかもしれません。
ちなみに、WordPress.comにコンテンツをホスティングすると、AS-Holeのコンテンツ内に記述しているスクリプトリンク(「applescript://」ではじまるリンク)がすべて無効化されてしまうので、現状ではWordPress.comにAS Holeを移転させることはできません。
| スクリプト名:WordPress.comが受け取るXML-RPCのメソッド名一覧を取得する |
| tell application "http://piyomaru.wordpress.com/xmlrpc.php" –たぶん、最新版のWordPress(2.8) call xmlrpc {method name:"mt.supportedMethods", parameters:{}} end tell –> {"wp.getUsersBlogs", "wp.getPage", "wp.getPages", "wp.newPage", "wp.deletePage", "wp.editPage", "wp.getPageList", "wp.getAuthors", "wp.getCategories", "wp.getTags", "wp.newCategory", "wp.deleteCategory", "wp.suggestCategories", "wp.uploadFile", "wp.getCommentCount", "wp.getPostStatusList", "wp.getPageStatusList", "wp.getPageTemplates", "wp.getOptions", "wp.setOptions", "wp.getComment", "wp.getComments", "wp.deleteComment", "wp.editComment", "wp.newComment", "wp.getCommentStatusList", "blogger.getUsersBlogs", "blogger.getUserInfo", "blogger.getPost", "blogger.getRecentPosts", "blogger.getTemplate", "blogger.setTemplate", "blogger.newPost", "blogger.editPost", "blogger.deletePost", "metaWeblog.newPost", "metaWeblog.editPost", "metaWeblog.getPost", "metaWeblog.getRecentPosts", "metaWeblog.getCategories", "metaWeblog.newMediaObject", "metaWeblog.deletePost", "metaWeblog.getTemplate", "metaWeblog.setTemplate", "metaWeblog.getUsersBlogs", "mt.getCategoryList", "mt.getRecentPostTitles", "mt.getPostCategories", "mt.setPostCategories", "mt.supportedMethods", "mt.supportedTextFilters", "mt.getTrackbackPings", "mt.publishPost", "pingback.ping", "pingback.extensions.getPingbacks", "demo.sayHello", "demo.addTwoNumbers", "wpStats.check_key", "wpStats.get_blog_id", "wpStats.get_site_id", "wpStats.update_bloginfo", "wpStats.update_postinfo", "wpStats.ping_blog", "wpStats.flush_posts"} |
