博客园Meta Weblog API增强建议
Windows Live Writer默认支持Meta Weblog API,所以我们可以用它在博客园中发布/修改/删除文章。不过博客园在发帖时提供了很多附加功能,其中最常用的有“发表至我的团队”和“以摘要方式发布”两项,而这些“非标准”功能Windows Live Writer却不能支持,让我们不得不每次发表之后还要登录Web界面修改一番。
为了解决这个不便之处,我建议博客园可以添加getPostMisc和setPostMisc两个API,用来取得/更新某篇帖子的这部分附加信息,请dudu酌情考虑。然后借助于Windows Live Writer提供的插件功能,我可以开发出与其集成的客户端部分,方便各位Blogger。
目前我只写了“团队”和“摘要”两部分,朋友们若有什么建议,或还需要什么附加功能,也请回复说明。谢谢!
cnblogs.getPostMisc
HTTP请求示例
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>cnblogs.getPostMisc</methodName>
<params>
<param>
<value>
<string>[post_id]</string>
</value>
</param>
<param>
<value>
<string>[username]</string>
</value>
</param>
<param>
<value>
<string>[password]</string>
</value>
</param>
</params>
</methodCall>
HTTP响应示例
<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<!--我的团队部分-->
<name>UserGroup</name>
<value>
<array>
<!--团队数组-->
<data>
<!--第一个团队-->
<value>
<struct>
<!--团队ID-->
<member>
<name>ID</name>
<value>
<string>[user group id]</string>
</value>
</member>
<!--团队名称-->
<member>
<name>Name</name>
<value>
<string>[user group name]</string>
</value>
</member>
<!--是否发表至该团队-->
<member>
<name>Selected</name>
<value>
<string>[post to this user group?]</string>
</value>
</member>
</struct>
</value>
<!--第二个团队-->
<!--第N个团队……-->
</data>
</array>
</value>
</member>
<member>
<!--摘要部分-->
<name>Summary</name>
<value>
<struct>
<!--摘要内容-->
<member>
<name>Content</name>
<value>
<string>[summary content]</string>
</value>
</member>
<!--是否以摘要方式发布-->
<member>
<name>Enabled</name>
<value>
<string>[true|false]</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
cnblogs.setPostMisc
HTTP请求示例
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>cnblogs.setPostMisc</methodName>
<params>
<param>
<value>
<string>[post_id]</string>
</value>
</param>
<param>
<value>
<string>[username]</string>
</value>
</param>
<param>
<value>
<string>[password]</string>
</value>
</param>
<param>
<value>
<struct>
<member>
<!--我的团队部分-->
<name>UserGroup</name>
<value>
<array>
<!--团队数组-->
<data>
<!--第一个团队-->
<value>
<struct>
<!--团队ID-->
<member>
<name>ID</name>
<value>
<string>[user group id]</string>
</value>
</member>
<!--团队名称-->
<member>
<name>Name</name>
<value>
<string>[user group name]</string>
</value>
</member>
<!--是否发表至该团队-->
<member>
<name>Selected</name>
<value>
<string>[post to this user group?]</string>
</value>
</member>
</struct>
</value>
<!--第二个团队-->
<!--第N个团队……-->
</data>
</array>
</value>
</member>
<member>
<!--摘要部分-->
<name>Summary</name>
<value>
<struct>
<!--摘要内容-->
<member>
<name>Content</name>
<value>
<string>[summary content]</string>
</value>
</member>
<!--是否以摘要方式发布-->
<member>
<name>Enabled</name>
<value>
<string>[true|false]</string>
</value>
</member>
</struct>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
HTTP响应示例
<?xml version="1.0" encoding="utf-8"?>
<methodResponse>
<params>
<param>
<!--是否成功-->
<value>
<string>[true|false]</string>
</value>
</param>
</params>
</methodResponse>