MetaWeblog API 中文说明
MetaWeblog API是一套基于XML-RPC通信协议的编程接口,是诸如Wordpress这样的Blog应用程序对外接口国际规范标准,通过MetaWeblog API,Blog应用可以对外公布Blog提供的服务,从而允许外面的程序能取得和设置Blog文章的文本或属性。目前大部分流行的Blog程序和工具都支持MetaWeblog API。
一、什么是MetaWeblog API?
MetaWebBlog API(MWA)是一个Blog程序接口标准,允许外部程序来获取或者设置Blog的文字和熟悉。他建立在XMLRPC接口之上,并且已经有了很多的实现。
二、MetaWeblog API 基本的函数规范
MetaWeblog API 有三个基本的函数规范:
metaWeblog.newPost(blogid,username,password,struct,publish);//返回一个字符串,可能是Blog的ID。
metaWeblog.editPost(postid,username,password,struct,publish);//返回一个Boolean值,代表是否修改成功。
metaWeblog.getPost(postid,username,password);//返回一个Struct。
说明:
1、其中blogid、username、password分别代表Blog的id(注释:如果你有两个Blog,blogid指定你需要编辑的blog)、用户名和密码。
2、struct的含意:
在newPost和editPost中,struct是一个RSS 2.0规范中<item>里面的定义。<item>的定义如下:
title:The title of the item.
link:The URL of the item.
description:The item synopsis.
author:Email address of the author of the item
category:Includes the item in one or more categories
comments:URL of a page for comments relating to the item
enclosure:Describes a media object that is attached to the item
guid:A string that uniquely identifies the item.
pubDate:Indicates when the item was published.
source:The RSS channel that the item came from.
其中最主要的三个元素是title、link和description。如果Blog工具不支持title和link,description就是目录(Content)。category是一个数组,是这个Post所属的类别。如果类别不存在,服务器端将只处理存在的类别。
三、文件上传函数
metaWeblog.newMediaObject (blogid, username, password, struct);//返回一个数组。
如果调用失败,它显示错误信息。如果调用成功,返回值是一个Struct,里面至少包含一个Url元素,代表数据的HTTP或者FTP Url。
参数说明:
其中blogid、username、password分别代表Blog的id(注释:如果你有两个Blog,blogid指定你需要编辑的blog)、用户名和密码。
struct必须包含name, type 和bits三个元素,当然也可以包含其他元素。name代表数据的名称;type是数据的MIME类型,譬如audio/mpeg 、image/jpeg和video/quicktime;bits是数据的base64编码形式的数据流。
四、获取分类函数
metaWeblog.getCategories (blogid, username, password);//返回一个struct。返回值包含所有的Blog的类别,每一个列别包含description, htmlUrl and rssUrl。
五、获取最近发布函数
metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts);//返回一个结构(struct)的数组(array)。
每一个Struct包含getPost返回值一样的结构。
numberOfPosts是返回的数量。
六、MetaWeblog API调用验证和错误显示
同Blogger API不同的是,MetaWeblog API 没有APPKEY这个概念,可以自己设置,同时建议使用标准的XMLRPC Fault来显示错误。
七、MetaWeblog API的应用场景
- 通过电子邮件方式发布Blog(比如Windows Live Spaces、Office 2007的电子邮件发布功能)
- 通过客户端(比如Live Writer、IM) 来发布Blog
- 通过社会化网络(例如Facebook、Twitter、Myspace、douban)来发布Blog
- 通过社会化书签(例如delicious、google docs)把收藏的网页、文档定时发布到Blog
- 通过Mahsup应用接口把聚合的内容发不到Blog