【转】给自己的Blog程序添加对Windows Live Writer的支持
来源:互联网 发布:php 解析爱奇艺 编辑:程序博客网 时间:2024/06/05 06:21
Windows Live Writer是Microsoft推出的脱离浏览器的Blog编辑和发布的工具, 支持Html和简单的图片编辑上传, 使用它, 可以极大的方便Blog的编辑和发布. 现在Windows Live Writer对国外较大的Blog服务提供了支持, 如Live Spaces, Blogger等, 如果你没用使用支持列表里的服务却想使用Windows Live Writer的话, 只要给你的BLog添加相应的Xml-Rpc支持就可以了.
Xml-Rpc是类似WebService的一种远程调用服务, 但支持它的平台要比WebService要多, Windows Live Writer以及其他很多离线Blog编辑发布工具都是使用Xml-Rpc来调用Blog程序的相应方法.
本文以ASP.NET为例,给Blog添加对Windows Live Writer的Xml-Rpc的支持,让我们可以在Live Writer里面实现编辑, 发布和修改Blog条目, 如果你的Blog是使用其他平台的话, 请参看
http://www.xmlrpc.com/directory/1568/implementatio... 来查找如何在你的平台实现Xml-Rpc. 虽然在各平台实现Xml-Rpc的方法不同, 但是添加对Windows Live Writer支持的接口的步骤还是差不多的.
准备工作
对于ASP.NET平台, 首先在http://www.xml-rpc.net/ 下载对Xml-Rpc支持的组件, 解压缩后把bin文件夹中的CookComputing.XmlRpcV2.dll 复制到ASP.NET程序的bin文件夹, 并且把interface文件夹中的 MetaWeblogAPI.cs 复制到App_Code文件夹(当然ASP.NET程序的其他文件夹也可以)..
开始
首先修改MetaWeblogAPI.cs文件, 这是Windows Live Writer支持的接口之一, 但是必须对它加一个方法才能正常的支持Windows Live Writer
添加一个struct:
public struct UserBlog{public string url;public string blogid;public string blogName;}
这是用来保存Blog信息的结构
然后再IMetaWeblog接口中添加一个方法:
[XmlRpcMethod("blogger.getUsersBlogs")]UserBlog[] getUsersBlogs(string appKey, string username, string password);
XmlRpcMethod指定的是在Xml-Rpc中的方法名, 这个不能改的..Client无法识别和调用
接口文件准备好了, 现在要实现接口的方法了在添加在ASP.NET程序根目录添加一个ashx文件, 假设是Rpc.ashx, 下面提供一个Rpc.ashx的例子:
<%@ WebHandler Language="C#" Class="RPCService" %> <!--注册类--><%@ Assembly Name="CookComputing.XmlRpcV2" %> <!--注册实现XmlRpc用的CookComputing.XmlRpcV2.dll-->using System;using System.Collections;using System.Web;using CookComputing.XmlRpc; //引入XmlRpcusing CookComputing.MetaWeblog; //引入IMetaWeblog接口using DataAccess; //引入你自己的Blog程序的数据访问namespace[XmlRpcService(Description = "MetaWeblog XML-RPC Service")]public class RPCService : XmlRpcService,IMetaWeblog{#region IMetaWeblog 成员//获得Blog站点信息 public UserBlog[] getUsersBlogs(string appKey, string username, string password){if (Login(username, password)) //验证用户名密码, 你必须在这个类中自己实现这个方法 {UserBlog blog = new UserBlog();blog.blogid = ""; //就一个Blog, 这个不用 blog.blogName = "LifeBeta"; //BlogName, 随便写吧 blog.url = "http://aspspider.org/lifebeta/"; //Blog的网址 return new UserBlog[] { blog };}return null;}//添加Blog public string newPost(string blogid, string username, string password, Post post, bool publish){if (Login(username, password)){//使用自己的DataAccess实现 return DataAccess.AddBlog(post.title, post.description, 4, "", false, DateTime.Now.AddHours(12)).ToString();}return null;}//编辑Blog public object editPost(string postid, string username, string password, Post post, bool publish){if (Login(username, password)){//使用你自己的DataAccess来实现, 注意post.title是标题, post.description是Blog的内容 DataAccess.EditBlog(Convert.ToInt32(postid), post.title, post.description, 4, "", false);}return null;}//获取分类public CategoryInfo[] getCategories(string blogid, string username, string password){if (Login(username, password)){//略 }return null;}//获取文章public Post getPost(string postid, string username, string password){if (Login(username, password)){//略 }return new Post();} //获取最近发表的文章 public Post[] getRecentPosts(string blogid, string username, string password, int numberOfPosts){if (Login(username, password)){//略 }return null;}//发布媒体对象public UrlData newMediaObject(string blogid, string username, string password, FileData file){if (Login(username, password))return new UrlData();}return new UrlData();}//自定义方法 public bool Login(string userName, string pass){//略,用来验证用户 }#endregion}
OK..差不多就这样了..在浏览器里输入这个ashx看看, 有以上实现的方法列表和数据类型, 挺像WebService的本地测试页面吧. 不过Xml-Rpc不能本地测试. 你现在就可以用Windows Live Writer来试试它了.
使用Windows Live Writer发布Blog
和添加其他Blog站点一样, 不过在选择Blog服务的时候要选择MetaWeblog(Custom), script的地址填ashx文件的路径.
大功告成! 因为使用了别人做好的Xml-Rpc解决方案, 所以要实现它还是挺简单的. 由于Live Writer尚处于beta阶段, 还是有些不完善的地方, .. 期待Live Writer的正式版吧..
注意,本文是转的,特此贴出出处:http://hi.baidu.com/natame/blog/item/f5bef523d964a64893580746.html#0,未经原作者同意,望见谅。
- 【转】给自己的Blog程序添加对Windows Live Writer的支持
- 给自己的Blog程序添加对Windows Live Writer的支持
- 给自己的Blog程序添加对Windows Live Writer的支持
- 给自己的Blog程序添加对Windows Live Writer的支持
- 给自己的Blog程序添加对Windows Live Writer的支持
- 转:Windows Live Writer里对CSDN BLOG的配置
- 转:Windows Live Writer 支持的博客
- Windows Live Writer里对CSDN BLOG的配置
- [转载]Windows Live Writer里对CSDN BLOG的配置
- Windows Live Writer里对CSDN BLOG的配置
- Windows Live Writer Blog的相关设置
- Windows live writer的CSDN blog 设置
- Windows live writer的CSDN blog 设置
- Windows live writer的CSDN Blog 设置
- Windows live writer的CSDN Blog 设置
- Windows live writer的CSDN blog 设置
- Windows live writer的CSDN blog 设置
- Windows live writer的CSDN blog 设置
- 关于servlet和jsp的学习总结二(详细)
- 【转】网络经典命令行
- 一不小心,crack了国产某服务器
- drwstn抓取dmp文件
- Java Annotation入门
- 【转】给自己的Blog程序添加对Windows Live Writer的支持
- Hibernate XML一对一外键关联映射 单向+双向
- 【转】了解Cookie
- 【转】常见问题及应用技巧---------[BIOS篇]
- EJB-----会话Bean
- scroll view 原理
- Android自动在线升级完整版,服务器为Tomcat
- Java编程中影响性能的一些特点
- 批处理打开软件并处理有空格的文件名