"%VOSWARNING%\n\n\n---++ODS Weblog Movable Type API\n\n * mt.getRecentPostTitles\n\nDescription: Returns a list of the most recent posts in the system, containing a titles without descriptions.\nParameters: \n string\t \"blogid\"\n\tstring\t \"username\"\n\tstring\t \"password\"\n\tint\t \"numberOfPosts\"\nReturn value: on success, array of structs containing only \"dateCreated\", \"userid\", \"\"postid\"\" and \"title\" members of structure. on failure, fault\n\n * mt.getCategoryList\n\nDescription: Returns a list of all categories defined in the weblog.\nParameters: \n\tstring \"blogid\"\n\tstring \"username\"\n\tstring \"password\"\nReturn value: on success, an array of structs containing : string \"categoryId\" and string \"categoryName\" on failure, fault.\n\t\n * mt.setPostCategories\n\nDescription: Sets the categories for a post.\nParameters: \n\tstring\t \"postid\"\n\tstring\t \"username\"\n\tstring\t \"password\"\n\tarray\t categories\nReturn value: on success, boolean true value; on failure, fault\nNote: The array \"categories\" is an array of structs containing:\n {\n string \"categoryId\" \n boolean \"isPrimary\" \n }\nUsing \"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.\n\n * mt.getPostCategories\n\nDescription: Returns a list of all categories to which the post\tis assigned.\nParameters: \n\tstring \"postid\"\n\tstring \"username\"\n\tstring \"password\"\nReturn value: on success, an array of structs containing:\n {\n string \"categoryName\"\n string \"categoryId\"\n boolean \"isPrimary\"\n }\non failure, fault.\nNotes: \"isPrimary\" denotes whether a category is the post's primary category.\n\n * mt.getTrackbackPings\n\t \nDescription: 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.\nParameters: \n\t\"postid\" string\nReturn value: an array of structs containing:\n {\n string \"pingTitle\"\t the title of the entry sent in the ping\n string \"pingURL\" the URL of the entry\n string \"pingIP\"\t the IP address of the host that sent the ping\n }\n\t\t\n * mt.publishPost\n\nDescription: No effect (just for compatibility), as blog home page is dynamic resource.\nParameters: \n\tstring \"postid\"\n\tstring \"username\"\n\tstring \"password\"\nReturn value: on success, boolean true value; on failure, fault\n\t\t\n * mt.supportedMethods\n\t \nDescription: Retrieve information about the XML-RPC methods supported by the server.\nParameters: none\nReturn value: an array of method names supported by the server.\nNOTE: the value of \"appkey\" is ignored by Movable Type in all of the Blogger XML-RPC methods.\n\n\n---+++XML-RPC endpoint configuration\n \nA virtual directory can be created and blogger API exposed to it. To do that following two approaches are possible:\n \n 1. Via Conductor UI create new virtual directory and select a template for XML-RPC link\n 1. Check the option 'bloggerAPI' and click Add.\n 1. A logical path now will support the XML-RPC and will have blogger APIs exposed.\n\nAnother approach is to execute following SQL script via ISQL tool as follows:\n\t\n\n .... blogserver.sql .... \n\t vhost_define (lpath=>'/RPC2', ppath=>'/SOAP/', soap_user=>'$U{usr}', soap_opts=>vector ('XML-RPC', 'yes')); \n\t grant execute on \"blogger.newPost\" to $U{usr};\n\t grant execute on \"blogger.editPost\" to $U{usr};\n\t grant execute on \"blogger.deletePost\" to $U{usr};\n\t grant execute on \"blogger.getPost\" to $U{usr};\n\t grant execute on \"blogger.getRecentPosts\" to $U{usr};\n\t grant execute on \"blogger.getUsersBlogs\" to $U{usr};\n\t grant execute on \"blogger.getTemplate\" to $U{usr};\n\t grant execute on \"blogger.setTemplate\" to $U{usr};\n\t grant execute on \"blogger.getUserInfo\" to $U{usr};\n\t grant execute on \"metaWeblog.newPost\" to $U{usr};\n\t grant execute on \"metaWeblog.editPost\" to $U{usr};\n\t grant execute on \"metaWeblog.getPost\" to $U{usr};\n\t grant execute on \"metaWeblog.getRecentPosts\" to $U{usr};\n\t grant execute on \"mt.getRecentPostTitles\" to $U{usr};\n\t grant execute on \"mt.getCategoryList\" to $U{usr};\n\t grant execute on \"mt.setPostCategories\" to $U{usr};\n\t grant execute on \"mt.getPostCategories\" to $U{usr};\n\t grant execute on \"mt.getTrackbackPings\" to $U{usr};\n\t grant execute on \"mt.publishPost\" to $U{usr};\n\t grant execute on \"mt.supportedMethods\" to $U{usr};\n ... eof ...\n\n $ isql 1111 dba dba -u usr=\"SQL user for execution\" blog_server.sql\n\n\nPlease note that \"SQL user for execution\" needs to be created prior to this action.\n\nImportant: 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.\n \n--+++ ODS Weblog Movable Type API Services UI Endpoint\n\nODS Weblog Movable Type API Services UI endpoint:\n\nhttp://host:port/RPC2/services.vsmx\n\n\nODS Weblog Movable Type API Services wsdl Endpoint:\n\nhttp://host:port/RPC2/services.wsdl\n\n\n---+++References\n\n * [[http://www.movabletype.org/docs/mtmanual_programmatic.html][Movable type API (extensions for blogger API)]]" . "ODSWeblogMovableTypeAPI" . . . "2017-06-13T06:02:26.785870"^^ . . "2017-06-13T06:02:26.785870"^^ . . . "ODSWeblogMovableTypeAPI" . "ODSWeblogMovableTypeAPI" . . . . . "2017-06-13T06:02:26Z" . . "8421f6dab385095d21f1f1aa14eea468" . . . . . "2017-06-13T06:02:26Z" .