Movable Type features a full implementation of the Blogger XML-RPC API (where applicable). The only two methods that are not supported by Movable Type are getTemplate and setTemplate, due to the differences between Blogger's template system and Movable Type's template system.
Movable Type also supports the metaWeblog XML-RPC API (also where applicable).
Finally, Movable Type also adds a couple of other methods of its own for manipulating the categories assigned to your entries.
- blogger.newPost
Description: Creates a new post, and optionally publishes it.
Parameters: String appkey, String blogid, String username, String password, String content, boolean publish
Return value: on success, String postid of new post; on failure, fault
- blogger.editPost
Description: Updates the information about an existing post.
Parameters: String appkey, String postid, String username, String password, String content, boolean publish
Return value: on success, boolean true value; on failure, fault
- blogger.deletePost
Description: Deletes a post.
Parameters: String appkey, String postid, String username, String password, boolean publish
Return value: on success, boolean true value; on failure, fault
- blogger.getRecentPosts
Description: Returns a list of the most recent posts in the system.
Parameters: String appkey, String blogid, String username, String password, int numberOfPosts
Return value: on success, array of structs containing ISO.8601 dateCreated, String userid, String postid, String content; on failure, fault
Notes: dateCreated is in the timezone of the weblog blogid
- blogger.getUsersBlogs
Description: Returns a list of weblogs to which an author has posting privileges.
Parameters: String appkey, String username, String password
Return value: on success, array of structs containing String url, String blogid, String blogName; on failure, fault
- blogger.getUserInfo
Description: Returns information about an author in the system.
Parameters: String appkey, String username, String password
Return value: on success, struct containing String userid, String firstname, String lastname, String nickname, String email, String url; on failure, fault
Notes: firstname is the Movable Type username up to the first space character, and lastname is the username after the first space character.
- metaWeblog.newPost
Description: Creates a new post, and optionally publishes it.
Parameters: String blogid, String username, String password, struct content, boolean publish
Return value: on success, String postid of new post; on failure, fault
Notes: the struct content can contain the following standard keys: title, for the title of the entry; description, for the body of the entry; and dateCreated, to set the created-on date of the entry. In addition, Movable Type's implementation allows you to pass in values for five other keys: int mt_allow_comments, the value for the allow_comments field; int mt_allow_pings, the value for the allow_pings field; String mt_convert_breaks, the value for the convert_breaks field; String mt_text_more, the value for the additional entry text; String mt_excerpt, the value for the excerpt field; String mt_keywords, the value for the keywords field; and array mt_tb_ping_urls, the list of TrackBack ping URLs for this entry. If specified, dateCreated should be in ISO.8601 format.
- metaWeblog.editPost
Description: Updates information about an existing post.
Parameters: String postid, String username, String password, struct content, boolean publish
Return value: on success, boolean true value; on failure, fault
Notes: the struct content can contain the following standard keys: title, for the title of the entry; description, for the body of the entry; and dateCreated, to set the created-on date of the entry. In addition, Movable Type's implementation allows you to pass in values for five other keys: int mt_allow_comments, the value for the allow_comments field; int mt_allow_pings, the value for the allow_pings field; String mt_convert_breaks, the value for the convert_breaks field; String mt_text_more, the value for the additional entry text; String mt_excerpt, the value for the excerpt field; String mt_keywords, the value for the keywords field; and array mt_tb_ping_urls, the list of TrackBack ping URLs for this entry. If specified, dateCreated should be in ISO.8601 format.
- metaWeblog.getPost
Description: Returns information about a specific post.
Parameters: String postid, String username, String password
Return value: on success, struct containing String userid, ISO.8601 dateCreated, String postid, String description, String title, String link, String permaLink, String mt_excerpt, String mt_text_more, int mt_allow_comments, int mt_allow_pings, String mt_convert_breaks, String mt_keywords; on failure, fault
Notes: link and permaLink are both the URL pointing to the archived post. The fields prefixed with mt_ are Movable Type extensions to the metaWeblog.getPost API.
- metaWeblog.getRecentPosts
Description: Returns a list of the most recent posts in the system.
Parameters: String blogid, String username, String password, int numberOfPosts
Return value: on success, array of structs containing ISO.8601 dateCreated, String userid, String postid, String description, String title, String link, String permaLink, String mt_excerpt, String mt_text_more, int mt_allow_comments, int mt_allow_pings, String mt_convert_breaks, String mt_keywords; on failure, fault
Notes: dateCreated is in the timezone of the weblog blogid; link and permaLink are the URL pointing to the archived post
- metaWeblog.newMediaObject
Description: Uploads a file to your webserver.
Parameters: String blogid, String username, String password, struct file
Return value: URL to the uploaded file.
Notes: the struct file should contain two keys: base64 bits (the base64-encoded contents of the file) and String name (the name of the file). The type key (media type of the file) is currently ignored.
- mt.getRecentPostTitles
Description: Returns a bandwidth-friendly list of the most recent posts in the system.
Parameters: String blogid, String username, String password, int numberOfPosts
Return value: on success, array of structs containing ISO.8601 dateCreated, String userid, String postid, String title; on failure, fault
Notes: dateCreated is in the timezone of the weblog blogid
- mt.getCategoryList
Description: Returns a list of all categories defined in the weblog.
Parameters: String blogid, String username, String password
Return value: on success, an array of structs containing String categoryId and String categoryName; on failure, fault.
- mt.getPostCategories
Description: Returns a list of all categories to which the post is assigned.
Parameters: String postid, String username, String password
Return value: on success, an array of structs containing String categoryName, String categoryId, and boolean isPrimary; on failure, fault.
Notes: isPrimary denotes whether a category is the post's primary category.
- mt.setPostCategories
Description: Sets the categories for a post.
Parameters: String postid, String username, String password, array categories
Return value: on success, boolean true value; on failure, fault
Notes: the array categories is an array of structs containing String categoryId and boolean isPrimary. Using isPrimary to set the primary category is optional--in the absence of this flag, the first struct in the array will be assigned the primary category for the post.
- mt.supportedMethods
Description: Retrieve information about the XML-RPC methods supported by the server.
Parameters: none
Return value: an array of method names supported by the server.
- mt.supportedTextFilters
Description: Retrieve information about the text formatting plugins supported by the server.
Parameters: none
Return value: an array of structs containing String key and String label. key is the unique string identifying a text formatting plugin, and label is the readable description to be displayed to a user. key is the value that should be passed in the mt_convert_breaks parameter to newPost and editPost.
- mt.getTrackbackPings
Description: Retrieve the list of TrackBack pings posted to a particular entry. This could be used to programmatically retrieve the list of pings for a particular entry, then iterate through each of those pings doing the same, until one has built up a graph of the web of entries referencing one another on a particular topic.
Parameters: String postid
Return value: an array of structs containing String pingTitle (the title of the entry sent in the ping), String pingURL (the URL of the entry), and String pingIP (the IP address of the host that sent the ping).
- mt.publishPost
Description: Publish (rebuild) all of the static files related to an entry from your weblog. Equivalent to saving an entry in the system (but without the ping).
Parameters: String postid, String username, String password
Return value: on success, boolean true value; on failure, fault
You can use Movable Type's XML-RPC implementation with existing tools like w.bloggar, BlogApp, BlogLet, BlogBuddy, Jericho, etc. For example, to set up BlogBuddy to post to your Movable Type weblog, follow these instructions:
The Movable Type code is written in an object-oriented style and contains a well-documented Perl API that you can use in your own Perl programs. The documentation itself is in POD format and is contained within the .pm files. You can read this documentation from the shell using the perldoc command. For example:
Movable Type's plugin framework makes it easy to add new tags to the system. In the future, more callback functionality will be added.
Plugin files are Perl scripts placed in a special directory; when Movable Type is initalized, it loads all of the plugins, which can modify the Movable Type code and system at runtime. Only files with .pl extensions are considered plugins and loaded automatically.
To create that directory, connect to your FTP server, and open the directory where you installed Movable Type. Create a new directory called plugins.
Plugin tags could be written to display RSS feeds, display server status information, implement a hit counter, etc. You can download plugins from http://www.movabletype.org/resources.shtml.