使用MetaWeblog接口来同步多个Blog
? 很多人有多个Blog,老是到处Ctrl+C Ctrl+V得绝非我等懒人所为。同步多个Blog,很轻易想到了运用Webservice。技术虽然简单,但有一个前提,需要博客运营方支持。 随着XML-RPC的越来越流行,MetaWeblog几乎成了目前最流行的离线Blog发送API.其能通过标准化的webservice接口,对任意blog进行添删改。目前,使用metaweblog发布离线博客客户端中流行的还是windows live writer。这里可以找到一些相关的设置方法。 话说回来,如何用metaweblog接口同步多个blog呢?当然你可以直接建立多个account来处理,但明显繁琐,也不符合我们diy的个性。 由于我自己个人Blog是完全自己写的,于是就不由想到了写一个metaweblog接口能使windows live writer连接上www.dumuzi.cn,再次它之上又增加了转发模块,转发其他Blog,一举多得。
调用metaweblog 我用到了XML-RPC.NET,一个开源的.Net 库,用于处理XML-RPC。 相关的调用非常简单,网上也能找到相应的demo。只要实现IMetaWeblog接口中MetaWeblog 和Blogger 对应的api就行了。 接口 public interface IMetaWeblog ??? [XmlRpcMethod("metaWeblog.newPost")] ??? [XmlRpcMethod("metaWeblog.editPost")] ??? [XmlRpcMethod("metaWeblog.getPost")] ??? [XmlRpcMethod("metaWeblog.getCategories")] ??? [XmlRpcMethod("metaWeblog.getRecentPosts")] ??? [XmlRpcMethod("metaWeblog.newMediaObject")] ??? #endregion ??? #region Blogger API ??? [XmlRpcMethod("blogger.deletePost")] ??? [XmlRpcMethod("blogger.getUsersBlogs")] ??? [XmlRpcMethod("blogger.getUserInfo")] ??? #endregion 使用时只需建立一个类,MetaWeblog 实现其接口的相应方法就行了,这样客户端通过访问之即可post blog了 public class MetaWeblog : XmlRpcService,IMetaWeblog 给一个写blog的方法 string IMetaWeblog.AddPost(string blogid, ??? if (ValidateUser(username,password)) ………………省略N行写入自己Blog的内容………………… return postid; ???? } } 值得注意的是,由于各blog的数据结构不同,可能导致部分接口调用时含义混淆,比如说string blogid原本是指通过GetUsersBlogs返回的当前用户的多个blog中对应的id,但某些blog却返回的是发送blog成功后返回的blog标记符,即postid 具体的可能需要根据不同blog具体分析。
转发Blog则相对更为简单,只需定义个转发接口IMetaWeblogPost 即可 public interface IMetaWeblogPost : IXmlRpcProxy ????? [XmlRpcMethod("metaWeblog.newPost")] ????? [XmlRpcMethod("metaWeblog.getCategories")] ????? [XmlRpcMethod("metaWeblog.newMediaObject")] ????? #endregion ? } 调用非常简单 以下给出AddPost方法的实现 string IMetaWeblog.AddPost(string blogid,
????????? if (true)//判断需要转发 ????????????? try ????????????? } ????????? } ????? } 当然你可以定义一些比如同步删除,同步修改之类的功能使用。 ? 通过以上2步,我们便能轻易发送www.dumuzi.cn上的blog同时让其转发其他Blog了 这篇Blog就同时在www.dumuzi.cn www.csdn.net www.cnblogs.com 3blog上发布。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 哪些服务在AngularJS中转换元素和attr名称?
- Bootstrap3基础 form-control 圆角的输入框,光标放入后边框
- Angular2:你如何并行运行2个动画?
- AngularJS(五)——指令
- angularjs – 是否有可能使用$rootScope作为商店在Angular
- shell – 在将后续作业提交到PBS群集之前等待用户的所有作业
- scala – 在宏上下文中查找隐式方法定义
- 实战WebService II: SOAP篇(基于php)
- 使用soapUI测试WebService接口,xml字符串参数需要处理一下
- Scala – 需要单位:play.api.mvc.SimpleResult