面向Google、YouTube、Facebook以及其他Web 2.0 API的C#和VB.NET类库

作者 Abel Avram译者 赵劼 发布于 2008年4月8日 下午11时55分

在Scott Hanselman博客最近发表的一篇 文章中,Scott编辑了一系列.NET类库,这些类库有助于开发人员面向那些互联网上著名的Web 2.0 API进行开发。

Digg

Digg的API使用REST形式的接口,并且通过XML进行通信。DiggApiNet是Digg API的一个.NET封装。CodeProject还包括另一个可用的API封装Digg API.NET。在Hanselman提供的如下示例中,从一个特定的URL中创建和加载了一个XmlDocument对象,然后将XML节点复制到Digg的特定对象中。

private const string get_popular = "http://services.digg.com/stories/popular/comments/{0}";

public DiggComments GetPopular()
{
return GetPopular(new Hashtable());
}
public DiggComments GetPopular(Hashtable args)
{
string uri = String.Format(get_popular, HttpBuildUrl(args));
return new DiggComments(Request(uri));
}
public DiggComments(XmlDocument xml_doc) : base(xml_doc, "events")
{
_comments = new List();
if (xml_doc.SelectSingleNode("events") == null
|| xml_doc.SelectSingleNode("events").SelectNodes("comment") == null) {
throw new DiggApiException("XML response appears to be malformed, or contains unexpected data.");
}
foreach (XmlNode node in xml_doc.SelectSingleNode("events").SelectNodes("comment")) {
_comments.Add(new DiggComment(node));
}
}

Facebook

Fackbook提供了一个复杂的API,目前已经可以获得足够多的.NET支持。CodePlex托管了两个相关的项目:一个是Facebook.NET,它提供了一套用于开发Facebook应用程序以及访问Fackbook API的.NET类库;另一个则是Facebook Developer Toolkit,最初由Clarity Consulting Inc.开发。Jay Lagorio为VB.NET编写了一个Facebook的API封装,而fbasync则是一个面向Fackbook异步API的CodePlex项目。

Google and YouTube

Google的API“GData” 是一套全面的类库,使用了XML并基于HTTP协议实现通信。GData为YouTube、Blogger、Google Calendar、Notebook、Spreadsheets、Documents、Picassa等提供支持。Google为.NET开发人员提供了 一个封装,以便于他们快捷地读写GData内容。以下示例撷取自Google提供的.NET开发人员指南

AtomEntry newPost = new AtomEntry();
newPost.Title.Text = "Marriage!";
newPost.Content = new AtomContent();
newPost.Content.Content = "<div xmlns='http://www.w3.org/1999/xhtml'>" +
"<p>Mr. Darcy has <em>proposed marriage</em> to me!</p>" +
"<p>He is the last man on earth I would ever desire to marry.</p>" +
"<p>Whatever shall I do?</p>" +
"</div>";
newPost.Content.Type = "xhtml";
newPost.Authors.Add(new AtomPerson());
newPost.Authors[0].Name = "Elizabeth Bennet";
newPost.Authors[0].Email = "[email protected]";

AtomEntry createdEntry = service.Insert("http://www.blogger.com/feeds/" + blogId + "/posts/default", newPost);

如果您想了解更多有关各种Web 2.0服务的类库,从Scott Hanselman的文章出发会是一个不错的选择。

你可能感兴趣的:(Facebook)