%VOSWARNING% ---++ODS Weblog Movable Type API * mt.getRecentPostTitles Description: Returns a list of the most recent posts in the system, containing a titles without descriptions. Parameters: string "blogid" string "username" string "password" int "numberOfPosts" Return value: on success, array of structs containing only "dateCreated", "userid", ""postid"" and "title" members of structure. on failure, fault * 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.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 Note: The array "categories" is an array of structs containing: { string "categoryId" 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.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" boolean "isPrimary" } on failure, fault. Notes: "isPrimary" denotes whether a category is the post's primary category. * 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: "postid" string 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 string "pingIP" the IP address of the host that sent the ping } * mt.publishPost Description: No effect (just for compatibility), as blog home page is dynamic resource. Parameters: string "postid" string "username" string "password" Return value: on success, boolean true value; on failure, fault * 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. NOTE: the value of "appkey" is ignored by Movable Type in all of the Blogger XML-RPC methods. ---+++XML-RPC endpoint configuration A virtual directory can be created and blogger API exposed to it. To do that following two approaches are possible: 1. Via Conductor UI create new virtual directory and select a template for XML-RPC link 1. Check the option 'bloggerAPI' and click Add. 1. A logical path now will support the XML-RPC and will have blogger APIs exposed. Another approach is to execute following SQL script via ISQL tool as follows: .... blogserver.sql .... vhost_define (lpath=>'/RPC2', ppath=>'/SOAP/', soap_user=>'$U{usr}', soap_opts=>vector ('XML-RPC', 'yes')); grant execute on "blogger.newPost" to $U{usr}; grant execute on "blogger.editPost" to $U{usr}; grant execute on "blogger.deletePost" to $U{usr}; grant execute on "blogger.getPost" to $U{usr}; grant execute on "blogger.getRecentPosts" to $U{usr}; grant execute on "blogger.getUsersBlogs" to $U{usr}; grant execute on "blogger.getTemplate" to $U{usr}; grant execute on "blogger.setTemplate" to $U{usr}; grant execute on "blogger.getUserInfo" to $U{usr}; grant execute on "metaWeblog.newPost" to $U{usr}; grant execute on "metaWeblog.editPost" to $U{usr}; grant execute on "metaWeblog.getPost" to $U{usr}; grant execute on "metaWeblog.getRecentPosts" to $U{usr}; grant execute on "mt.getRecentPostTitles" to $U{usr}; grant execute on "mt.getCategoryList" to $U{usr}; grant execute on "mt.setPostCategories" to $U{usr}; grant execute on "mt.getPostCategories" to $U{usr}; grant execute on "mt.getTrackbackPings" to $U{usr}; grant execute on "mt.publishPost" to $U{usr}; grant execute on "mt.supportedMethods" to $U{usr}; ... eof ... $ isql 1111 dba dba -u usr="SQL user for execution" blog_server.sql Please note that "SQL user for execution" needs to be created prior to this action. Important: if you specify the "dba" as user for SOAP execution in virtual directory, grant statements are not needed; but this will open a security hole. So this approach is not recommended. Always is better to have a separate user for SOAP execution with limited rights. --+++ ODS Weblog Movable Type API Services UI Endpoint ODS Weblog Movable Type API Services UI endpoint: http://host:port/RPC2/services.vsmx ODS Weblog Movable Type API Services wsdl Endpoint: http://host:port/RPC2/services.wsdl ---+++References * [[http://www.movabletype.org/docs/mtmanual_programmatic.html][Movable type API (extensions for blogger API)]]